题目是下面的,
父类:
public 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 fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
那么 输出的结果是什么???并给我解释一下!!!要过程!
直接讲重点 每个类中都有构造方法 即使你没写 也有个默认空的 子类继承父类 在构造方法中必须要调用父类的构造方法 用super关键字 即使你没写 也会默认有super(); 所以上面的输出结果是 FatherClass Create FatherClass Create
打印结果:
FatherClass Create
FatherClass Create
ChildClass Create
FatherClass fc = new FatherClass();
这句话新建一个FatherClass调用其默认的构造方法,打印FatherClass Create....
ChildClass cc = new ChildClass();
新建ChildClass对象,因为它继承自FatherClass,是FatherClass的一个子类...
会先调用父类的构造方法 打印FatherClass Create 然后再调用自身的构造方法...
因为ChildClass是FatherClass的类型,可以这样理解....必须先得有父亲才有有孩子的吧!