public class FatherClass {
public FatherClass()
{
System.out.println("父类创建");
}}public class ChildClass extends FatherClass{
ChildClass()
{
System.out.println("子类创建");
}
public  static void main(String[]args)
{
FatherClass fc=new FatherClass();
ChildClass cc=new ChildClass();
}}
父类创建
父类创建
子类创建怎么会有两个“父类创建”,实例化ChildClass()的时候,是不是又输出了一次“父类创建”,不是很明白,谁能解释一下,THX!

解决方案 »

  1.   

    子类的构造方法中会自动加入super();
      

  2.   

    ChildClass() 

    System.out.println("子类创建"); 
    } 就等于ChildClass() 

    super();
    System.out.println("子类创建"); 
    } 那个super();是默认的
      

  3.   

    下载个think in java看看里面有详细的解释
    子类会自动调用父类的构造器
      

  4.   

    子类的构造函数在执行你写出来的语句,现默认调用super();所以
      

  5.   

    只要创建子类的对象,这个子类的直接父类、间接父类的的构造方法都要执行,执行顺序从Object类的构造方法开始,直到这个子类构造方法。
      

  6.   

    public class FatherClass { 
    public FatherClass() 

    System.out.println("父类创建"); 
    } } public class ChildClass extends FatherClass{ 
    ChildClass() 

    System.out.println("子类创建"); 

    public  static void main(String[]args) //先从main方法开始执行

    FatherClass fc=new FatherClass(); //创建一个父类对象->父类创建
    ChildClass cc=new ChildClass(); //这里是创建一个子类对象cc,在创建CC的时候调用了父类的构造方法 FatherClass()->父类创建;然后在调用ChildClass()—>子类创建
    } } 
    父类创建 
    父类创建 
    子类创建