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 能夠驗證是不是父類的方法。若是不是,將會報錯