java繼承中的構造方法

關於繼承中的構造方法之前心裏有一些混亂,所以特別在此整理一下,希望對大家有所幫助!!

再說構造方法之前不得不說一下繼承了,繼承是什麼呢?

繼承:把一些大量重用的,一些公有的信息存放在一個單獨的類中(即父類),子類調用其中的公有信息即可。

下面我們開始具體說一下構造方法。

1:----------------------------------------------------------------------------------------------

父類的無參構造方法之所以被執行,是因爲java規定,子類在構造之前必須先構造父類

事實上,子類的構造方法中是必須要通過super關鍵字來調用父類的構造方法的,這樣纔可以保證妥善的初始化繼承自父類的成員變量。

如果子類的構造方法中沒有調用父類的構造方法,則java編譯器自動的加入

代碼示例:

  1. public TetrominoT(int row, int col) {
  2. super ( ) ;
  3.     cells[0] = new Cell(row, col);
  4.     cells[1] = new Cell(row, col + 1);
  5.     ……    
  6. }
super關鍵字必須位於子類構造方法的第一行否則會有編譯錯誤

2:————————————————————————————————————————————

若父類沒有提供無參的構造方法,則會出現編譯錯誤

示例:

  1. class Foo { //父類
  2. int value;
  3. Foo(int value) {
  4. this.value = value;
  5. }
  6. }
  7. class Goo extends Foo { //子類
  8. int num;
  9. Goo(int num) {
  10. this.num = num;
  11. }
  12. }
針對上面的問題,可以有兩種解決方案,

方案一:

在父類中添加無參的構造方法。

方案二:

在子類構造方法中顯示調用父類的有參構造方法(常常使用),這樣可以保證父類的成員變量均被初始化

代碼如下:

  1. class Goo extends Foo {
  2. int num;
  3. Goo(int value, int num) {
  4. super(value);
  5. this.num = num
  6. }
  7. }
這是我第一次寫博客,不足之處大家多多諒解,之後我會繼續努力的,爭取一天一個知識點!!!

謝謝大


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章