關於繼承中的構造方法之前心裏有一些混亂,所以特別在此整理一下,希望對大家有所幫助!!
再說構造方法之前不得不說一下繼承了,繼承是什麼呢?
繼承:把一些大量重用的,一些公有的信息存放在一個單獨的類中(即父類),子類調用其中的公有信息即可。
下面我們開始具體說一下構造方法。
1:----------------------------------------------------------------------------------------------
父類的無參構造方法之所以被執行,是因爲java規定,子類在構造之前必須先構造父類。
事實上,子類的構造方法中是必須要通過super關鍵字來調用父類的構造方法的,這樣纔可以保證妥善的初始化繼承自父類的成員變量。
如果子類的構造方法中沒有調用父類的構造方法,則java編譯器自動的加入。
代碼示例:
super關鍵字必須位於子類構造方法的第一行,否則會有編譯錯誤
- public TetrominoT(int row, int col) {
- super ( ) ;
- cells[0] = new Cell(row, col);
- cells[1] = new Cell(row, col + 1);
- ……
- }
2:————————————————————————————————————————————
若父類沒有提供無參的構造方法,則會出現編譯錯誤
示例:
針對上面的問題,可以有兩種解決方案,
- class Foo { //父類
- int value;
- Foo(int value) {
- this.value = value;
- }
- }
- class Goo extends Foo { //子類
- int num;
- Goo(int num) {
- this.num = num;
- }
- }
方案一:
在父類中添加無參的構造方法。
方案二:
在子類構造方法中顯示調用父類的有參構造方法(常常使用),這樣可以保證父類的成員變量均被初始化
代碼如下:
這是我第一次寫博客,不足之處大家多多諒解,之後我會繼續努力的,爭取一天一個知識點!!!
- class Goo extends Foo {
- int num;
- Goo(int value, int num) {
- super(value);
- this.num = num
- }
- }
謝謝大
java繼承中的構造方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.