上週去參加了個實習生筆試,裏面一道題做錯了,菜鳥啊菜鳥,還得好好歷練啊。
問題是: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()
故調用順序是:基類構造函數,派生類的成員類的構造函數,派生類構造函數。