java中 “繼承”是面向對象軟 件技術當中的一個概念。如果一個類A繼承自另一個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。繼承可以使得子類具有父類的各種屬性和方 法,而不需要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,並重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。
繼承的基本概念
1.繼承是面向對象的三大特性之一。(封裝,繼承,多態)
2.被繼承的類是父類,繼承父類的類是子類
3.繼承可以使一個對象直接使用另以對象的屬性和方法
4.繼承可實現代碼重用
繼承的限制
1.java只能顯示單繼承,即一個類只能有一個父類
2.允許多重繼承
3.繼承只能繼承非私有的屬性和方法
4.構造方法不能被繼承
來看例子
情況一:
輸出結果為: <ignore_js_op> ![]()
得出結論1:子類實例化時,首先會調用父類的構造方法,之后自己在進行實例化操作
情況二:
![]()
此時引入關鍵字super。super表示父類的引用,可以調用父類的方法和屬性。如調用父類的say方法,可以用。super.say()調用。
得出結論二:父類無默認構造函數時,子類必須顯示的調用父類的構造方法
繼承方法的重寫
概念:在java中,子類能繼承父類中的方法,但有時子類並不想原封不動的使用父類的方法,而想做一些修改,這就需要采用方法的重寫,又稱方法覆蓋。
方法重寫需要注意的特性
1.發生重寫的父類和子類的兩個方法的返回值,函數名,參數列表必須完全一致
2.子類拋出的異常不能超過父類相應方法拋出的異常
3.子類方法的訪問級別不能低於父類相應方法的訪問級別(如父類方法時protected,子類重寫就要用protected或public)
如:
![]() |