當你沒有使用父類默認的構造方法時,此時在子類的構造方法中就需要顯示的調用父類定義的構造方法。
比如:
父類:
class Animal{
private String name;
//如果你定義一個新的構造方法
public Animal(String name) {
this.name = name;
}
}
子類:
public Dog extends Animal{
//這是你就要顯示的調用父類的構造方法,因為子類默認調用的是父類的
//無參構造方法Animal()
public Dog(){
super("小狗"); //顯示調用父類的有參構造方法
.... //子類的構造方法處理
}
}
當然,如果你在父類里面把無參的構造方法,顯示的寫出來了,比如:
父類:
class Animal{
private String name;
//無參的構造方法
public Animal() {
..... //處理
}
//如果你定義一個新的構造方法
public Animal(String name) {
this.name = name;
}
}
那么在子類的構造方法中,就可以不用顯示的調用父類的構造方法,因為子類有個無參的構造方法,子類在構造方法中會自動調用父類已經定義的無參構造方法。
不過一般的,在父類中使用了構造方法的重載,在子類中就可以根據需要,調用相應的父類構造方法