繼承是Java大三特性之一,繼承可以這麼理解,就是子類繼承父類的屬性以及行為(方法),也就是讓子類對象具有父類相同的屬性和方法。比如上活簡單例子:家族制的繼承,父親老了,但是父親擁有的事業以及資金,然後兒子繼承了父親,這時兒子就擁有了父親的屬性和方法,這就是繼承。繼承的好處就是提高代碼的復用性和類和類之間產生關係,這也是三大特性其中之一多態的前提。
子類繼承父類成員變量特點
如果子類繼承了父類,但是子類不寫父類的屬性和方法,這時候也是可以。而如果子類要寫與父類的成員變量相同,這時在子類中是需要訪問父類非私有成員變量時,必須寫super關鍵字,用法就是super.父類成員變量名,即可。
子類繼承父類方法特點
如果繼承父類,但是子類不重寫父類成員方法,這時對象調用時,它會先子類查找有沒有對應方法,如果子類存在就會執行子類方法,如果子類不存在就會執行父類相應的方法。如果子類繼承父類方法,這時叫方法的重寫(Override),子類方法和父類方法一模一樣,返回值類型、方法名以及參數列表都相同,這時是會有覆蓋效果的。重寫的好處:子類可以根據資金需要重新實現父類方法,這樣字可以進行擴展子類功能。
小結子類繼承父類:
子類方法要覆蓋父類方法,返回值類型、函數名以及參數列表都要一模一樣。子類方法覆蓋父類方法時,必須要保證權限問題,子類權限一定要大於父類權限。子類不能繼承父類構造方法。
子類初始化過程,必須先執行父類的初始化動作,也就是子類構造方法默認有一個super,表示調用父類構造方法,等父類成員變量初始化後,才能使用子類。值得注意:Java只支持單繼承,不支持多繼承(面試常問)
this和super
this:表示當前對象的引用,可以理解為誰調用就代表誰。super:表示父類存儲空間,可以理解父類的引用。注意:super和this都必須是在構造方法的第一行,且不能同時出現。
筆者從事大數據、Java後端開發的,如果你也是正在考慮學習或者這學習中遇到什麼問題,可以評論區留言或者私信,感興趣的朋友可以關注我,後續會更新關於大數據、Java開發的技術文章。