class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass create");
}
}
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass create");
}
public static void main(String[] args)
{
FatherClass f = new FatherClass();
ChildClass c = new ChildClass();
}
}
请好手们说下详细的执行顺序(结合输出结果),谢谢了。
{
public FatherClass()
{
System.out.println("FatherClass create");
}
}
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass create");
}
public static void main(String[] args)
{
FatherClass f = new FatherClass();
ChildClass c = new ChildClass();
}
}
请好手们说下详细的执行顺序(结合输出结果),谢谢了。
FatherClass create
ChildClass create
所以调用FatherClass的构造方法,打印FatherClass create;
2.执行ChildClass c = new ChildClass();
因为ChildClass继承FatherClass ,所以在调用ChildClass 时先会调用它父类的构造方法,即
public ChildClass()
{
System.out.println("ChildClass create");
}相当于
public ChildClass()
{
super();
System.out.println("ChildClass create");
}
即使你不写,他也会调用默认的super();因此会先打印FatherClass create;再打印ChildClass create
的时候,是先执行子类的构造方法还是父类的构造方法?
FatherClass f = new ChildClass();
ChildClass c = new ChildClass();
这两个执行的结果是一样的,申明时:f是父类的对像,C是子类的对像,有什么区别吗?谢谢了
用 ChildClass c=new ChildClass();
c.FatherClass();//调用父类的方法
c.ChildClass();//调用子类的方法
先执行父类的构造方法
然后再执行子类的构造方法子类的构造方法中默认调用了super()...