有兩個類。一個從另一個繼承。自從我調用子類構造函數和它的方法以來,測試結果讓我感到驚訝 。不過,我不會像這樣調用超類構造函數new Cougar().go();
。但是輸出顯示了超類構造函數被調用。你能解釋我爲什麼發生這種情況嗎?繼承構造函數調用結果
public class Feline {
public String type = "f";
public Feline() {
System.out.println("feline");
}
}
public class Cougar extends Feline {
public Cougar() {
System.out.println("cougar");
}
public static void main(String[] args) {
new Cougar().go();
}
private void go() {
type = "c";
System.out.println(this.type + " " + super.type);
}
}
輸出:貓 熟女 C C
如何避免此問題 – ramazankul 2014-12-03 11:47:14
您無法避免調用超類構造函數。檢查編輯的答案可能的解決方案 – 2014-12-03 11:56:01
在你的解決方案,美洲獅不擴展felina – ramazankul 2014-12-03 11:59:22