我非常困惑重寫構造函數。構造函數不能被覆蓋的是結果,當我在谷歌搜索它是什麼讓我的問題是覆蓋構造函數
public class constructorOverridden {
public static void main(String args[]) {
Sub sub = new Sub();
sub.test();
}
}
class Super {
Super() {
System.out.println("In Super constructor");
test();
}
void test() {
System.out.println("In Super.test()");
}
}
class Sub extends Super {
Sub() {
System.out.println("In Sub constructor");
}
void test() { // overrides test() in Super
System.out.println("In Sub.test()");
}
}
當我運行此我得到的結果作爲
In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
請注意在子類中的測試方法被執行。它是否顯示超類構造函數被覆蓋。它是否正確?
那麼,在避免「在構造函數中調用重載方法」時應該使用什麼方法?我試圖完成的是超類構造函數調用抽象方法init(),build()和fill()的基本流程。所以,所有的子類都必須經歷相同的流程! – Akshat
@Akshat:好吧,這聽起來像是屬於「非常明顯的文檔」類別。通常有一些*設計的方式,但很難給出一個通用的配方。 –
如果你可以給這些方式鏈接,那會很棒! – Akshat