[Java] 繼承概念
建構子和繼承的觀念
1. 預設建構子:
當你沒有在類別中寫任何建構子時,會自動產生一個預設建構子(也就是不傳參數的空建構子),然而一旦寫了其他建構子,就不會給預設建構子。
2. 繼承關係中建構子的呼叫順序:
物件產生時,會先呼叫父類別的建構子,再來才是子類別(會從最上方的類別開始初始化成員)。
3. 子類別呼叫父類別的建構子:
子類別可以透過super(參數)呼叫父類別對應參數的建構子,如果子類別沒有使用super(參數)指定父類別的建構子,則會預設一個super(),呼叫父類別中的預設建構子(不傳參數的空建構子)。
所以在Q7_02類別中,其實藏了以下這段敘述:
public Q7_02() {
super();
}
它會透過super()呼叫Q7_01裡的預設建構子,然而你在Q7_01已經寫了其他建構子,在找不到預設建構子的情況下,編譯就會出錯囉~
留言
張貼留言