有引數的父類建構函式

2021-06-17 23:16:21 字數 465 閱讀 8075

如果父類的建構函式有引數該怎麼辦?你能夠傳值進去嗎?如果不行的話,則沒有無引數建構函式的類將不能被繼承。想象這個情景:所有的動物都有名字。所以animal這個類有個getname()可以返回name例項變數的值。此例項變數是被標記為私有的,但hippo這個子類有把getname()繼承下來。這時候問題來了:

hippo有getname()這個方法但是沒有name例項變數。hippo要靠animal的部分來維持name例項變置,然後從getname()來返回這個值,但animal要如何取得這個值呢?唯一的機會是通過super()來引用父類,所以要從這裡把name的值傳進去,讓animal把它存到私有的name例項變數中。

public abstract class animal 

public animal(string thename)

}public class hippo extends animal

}

當父類構造方法有引數時

1.構造方法不能被繼承 2.當例項化乙個子類時,首先會呼叫父類的構造方法 3.當例項化乙個子類物件時,如果父類的構造方法帶有引數,那麼子類必須要為父類的構造方法提供引數 super指標 指向當前物件的父類。可以使用super 的形式,在子類的構造方法中給父類的構造方法傳引數。注意 構造方法是不能被其...

呼叫父類的帶引數的建構函式

下面我們修改一下animal類的建構函式,增加兩個引數height和weight,分別表示動物的高度和重量。如例2 13所示。例2 13 雙擊 全選 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

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

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