/**
* 构造器的调用顺序
* 子类在产生对象实例时首先会调用父类的构造函数,如果没有显示指定调用父类自定义的构造函数,
* 那么编译器会默认调用super()。如果父类的构造函数中带参数,就必须在子类中指定调用它,否则
* 会因找不到super而报错。
*/
class Animal{
Animal(){
System.out.println("Class Animal");
}
}
class Fish extends Animal{
Fish(){
System.out.println("Class Fish");
}
}
class GoldFish extends Fish{
GoldFish(){
System.out.println("Class GoldFish");
}
}
public class TestInheritanceConstructor extends Animal{//首先调用
private GoldFish goldfish = new GoldFish();//其次调用
public TestInheritanceConstructor(){
System.out.println("TestInheritanceConstructor");//最后调用
}
public static void main(String[] args){
new TestInheritanceConstructor();
}
}
/**
*输出结果:
* Class Animal
* Class Animal
* Class Fish
* Class GoldFish
* TestInheritanceConstructor
*/
java构造器的调用顺序
最新推荐文章于 2024-03-29 08:00:00 发布