java-繼承

java——三大特性之繼承

1、繼承的含義及做用

在寫java代碼的時候,經常會出現一些相同或者相似的類,裏面有着差很少的屬性和方法。爲了不代碼冗餘,因而咱們將這些差很少的類進行了一個操做——繼承。java

如上圖,ide

哺乳動物 和 卵生動物 繼承了 動物類(父類),能夠得到父類全部的屬性和方法(私有屬性和構造方法除外)this

貓類 和 人類 在繼承了哺乳動物後,不只得到了父類裏的屬性和方法,還額外自主的添加了新的屬性和方法(子類本身的屬性和方法,不關父類的事)spa

鳥類 和 蛇類 在繼承了卵生動物後,能夠重寫父類的方法(方法名,修飾符,返回值都相同,只有方法體不同)blog

當咱們實例化卵生動物(子類)時,動物類(父類)先進行實例化,子類實例化時先實例化其父類,而後實例化子類。(想要使用子類,父類必須先被建立)繼承

 

2、super 與 this

因爲 子類 不能繼承父類中的 構造方法 和私有屬性,而咱們又想進行使用時。get

super. 可使用到父類的普通方法,想獲取父類的私有屬性,則使用父類的get方法(注意是super丶不要忘記了小數點)class

this. 指向本類的引用,調用本類的方法和屬性權限

super()引用

  • 調用父類的構造器
  • super只能出如今構造器中,而且只能爲第一行
  • 父類有多個構造器時,super()括號中傳入的實參,決定了調取父類中的哪一個構造器
  • 子類構造器會默認添加super(),調取父類無參的構造器。因此,當父類沒有空構造器時,程序將會報錯。

this()

  • 調用本類的構造器
  • 只能寫在構造器中,而且只能爲第一行

注意:this() 和 super() 不能出如今同一個構造器中

3、方法的重寫(覆蓋)

當 子類 繼承 父類後,每每子類的 方法 更加的清晰,因此咱們將更改 父類 的方法,將 父類 繼承下來的方法 更加具體的實現;

重寫父類方法的規則

  • 相同的方法名
  • 相同的參數列表(參數數量、參數類型、參數順序都要相同)
  • 相同的返回值類型
  • 子類覆蓋方法的訪問權限要不小於父類中被覆蓋方法的訪問權限(public > protected > default > private)

在重寫方法上,可使用 @Override 註解來標明是重寫方法。固然也能夠省略,但爲了代碼可讀性,建議保留。

@Override 能夠驗證是不是父類的方法。若是不是,將會報錯

相關文章
相關標籤/搜索