上周去参加了个实习生笔试,里面一道题做错了,菜鸟啊菜鸟,还得好好历练啊。
问题是:java中的基类构造函数,派生类构造函数,以及派生类的成员类的构造函数,三者调用顺序。
写三个类测试:
class Dog{
public Dog(){
System.out.println("Dog()");
}
}
class Pet{
public Pet(){
System.out.println("Pet()");
}
}
public class Cat extends Pet{
public Cat(){
System.out.println("Cat()");
}
Dog dog = new Dog();
public static void main(String args[]){
Cat cat = new Cat();
}
}
输出:
Pet()
Dog()
Cat()
故调用顺序是:基类构造函数,派生类的成员类的构造函数,派生类构造函数。