繼承(面向對象的繼承)

本詞條是多義詞,共4個義項
更多義項 ▼ 收起列表 ▲

繼承面向對象軟體技術當中的一個概念,與多態、封裝共為面向對象的三個基本特徵。 繼承可以使得子類具有父類的屬性和方法或者重新定義、追加屬性和方法等。

基本介紹

  • 中文名:繼承
  • 外文名:inheritance
概念,注意,

概念

繼承(英語:inheritance)是面向對象軟體技術當中的一個概念。如果一個類別A“繼承自”另一個類別B,就把這個A稱為“B的子類別”,而把B稱為“A的父類別”也可以稱“B是A的超類”。繼承可以使得子類別具有父類別的各種屬性和方法,而不需要再次編寫相同的代碼。在令子類別繼承父類別的同時,可以重新定義某些屬性,並重寫某些方法,即覆蓋父類別的原有屬性和方法,使其獲得與父類別不同的功能。另外,為子類別追加新的屬性和方法也是常見的做法。 一般靜態的面向對象程式語言,繼承屬於靜態的,意即在子類別的行為在編譯期就已經決定,無法在執行期擴充。
那么如何使用繼承呢?用extends關鍵字來繼承父類。
如上面A類與B類,當寫繼承語句時, class A類 extends B類{ } 其中A類是子類,B類是父類。

注意

1、子類擁有父類得特徵,而父類沒有,父類更通用,子類更具體,(特徵包括屬性和方法,自身的特性,擁有父類沒有的)
2、使用extends繼承父類,語句格式:class 子類名 extends 父類名{}
3、父類中一般只定義一般屬性和方法(這個一般可以理解為是子類共有的,這就是父類更通用,而子類擁有其他的,所以子類更具體)
4、子類中通過super關鍵字來調用父構造方法
5、在子類中可以繼承父類得那些東西,哪些不可以繼承
父類中public,protected修飾的屬性,方法可以繼承,private修飾的屬性和方法不能被繼承
6、規則: 創建子類對象的時候,首先調用的是父類的無參構造方法創建一個父類對象
7、可以在子類中顯示調用父類的有參構造方法
8、如果父類的屬性均為private修飾,則可以通過共有的getter,setter方法來調用
有些程式語言支持多重繼承,即一個子類別可以同時有多個父類別,比如C++程式語言;而在有些程式語言中,一個子類別只能繼承自一個父類別,比如Java程式語言,這時可以利用接口來實現與多重繼承相似的效果。
現今面向對象程式設計技巧中,繼承並非以繼承類別的“行為”為主,而是繼承類別的“型態”,使得元件的型態一致。另外在設計模式中提到一個守則,“多用合成,少用繼承”,此守則也是用來處理繼承無法在執行期動態擴充行為的遺憾。

相關詞條

熱門詞條

聯絡我們