父類沒有預設的建構函式,子類會編譯通不過

2021-09-01 17:23:57 字數 432 閱讀 6446

父類沒有預設的建構函式,子類會編譯通不過

例子 父類

public class a 

}

子類 錯誤**

public class b extends a

}

子類正確**

public class b extends a

}

如果父類沒有寫構造方法或者父類的構造方法跟預設的一樣

那麼子類不寫構造方法就會預設呼叫父類的構造方法,

如果父類是預設的構造方法

子類要寫構造方法 那麼必須先super()  預設的你可以不寫也 編譯器會給你預設加上

但如果父類過載了構造方法 比如 a(string s)

那麼子類就必須寫 b(string s)

關於父類沒有預設的建構函式時,子類如何建立建構函式

我們都知道,在類定義了帶引數的建構函式後,便不再提供預設建構函式,但是子類的建構函式需要父類的預設建構函式才能定義,否則編譯時將會出錯,這時有兩種解決方法,一種是利用建構函式過載,過載乙個預設的建構函式,另一種方法如下 例 class tree 構造乙個樹類作為父類 void treelife 樹類...

父類建構函式 子類建構函式

1.子類可以通過super關鍵字來顯式地呼叫父類的建構函式。2.當父類沒有提供無引數的建構函式時,子類也不可以有無參建構函式,且子類的建構函式中必須顯式的呼叫父類的建構函式 3.如果父類提供了無引數的建構函式,此時子類的建構函式就可以不顯式的呼叫父類的建構函式,預設呼叫父類的無參建構函式。4.只要父...

父類建構函式 子類建構函式

1.子類可以通過super關鍵字來顯式地呼叫父類的建構函式。2.當父類沒有提供無引數的建構函式時,子類也不可以有無參建構函式,且子類的建構函式中必須顯式的呼叫父類的建構函式 3.如果父類提供了無引數的建構函式,此時子類的建構函式就可以不顯式的呼叫父類的建構函式,預設呼叫父類的無參建構函式。4.只要父...