解决方案 »

  1.   

    子类的所有构造函数中的第一行,其实都有一条隐身的语句super(); 解释:super()表示父类的构造函数并会调用于参数相对应的父类中的构造函数。子类中,它在调用父类中空参数的构造函数。因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。
      

  2.   

    输出的是:
    a=1,b=java
    -------------------------
    a=1,b=java
    a=2.0,b=php
    在new B()的时候,因为B是A的子类,所以在创建时先调用父类A的构造函数再执行B构造函数中的其他代码,即B的构造函数为:public B(){
    super();
    System.out.println("a="+a+",b="+b);
    }
      

  3.   

    a=1,b=java
    a=2.0,b=php
    -------------------------
    a=1,b=java
    a=2.0,b=php
      

  4.   

    应该是:
    a=1,b=java
    a=2.0,b=php
    -------------------------
    a=1,b=java
    a=2.0,b=php
    这样才对,刚才看错了,把A a=new B()看成A a=new A()了