python類的繼承

編程語言 面向對象程序編程 IT優就業 2017-07-30

一、概述 

面向對象編程 (OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴展。

通過繼承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”,繼承的過程,就是從一般到特殊的過程。在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。

繼承概念的實現方式主要有2類:實現繼承、接口繼承。

  1. 實現繼承是指使用基類的屬性和方法而無需額外編碼的能力。

  2. 接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力(子類重構爹類方法)。

在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關係應該是“屬於”關係。例如,Employee 是一個人,Manager 也是一個人,因此這兩個類都可以繼承 Person 類。但是 Leg 類卻不能繼承 Person 類,因為腿並不是一個人。

OO開發範式大致為:劃分對象→抽象類→將類組織成為層次化結構(繼承和合成) →用類與實例進行設計和實現幾個階段。

二、類的繼承

2.1 繼承的定義

python類的繼承

2.2 構造函數的繼承

  如果我們要給實例 c 傳參,我們就要使用到構造函數,那麼構造函數該如何繼承,同時子類中又如何定義自己的屬性?

繼承類的構造方法:

1.經典類的寫法: 父類名稱.__init__(self,參數1,參數2,...)

2. 新式類的寫法:super(子類,self).__init__(參數1,參數2,....)

python類的繼承

如果我們只是簡單的在子類Chinese中定義一個構造函數,其實就是在重構。這樣子類就不能繼承父類的屬性了。所以我們在定義子類的構造函數時,要先繼承再構造,這樣我們也能獲取父類的屬性了。

子類構造函數基礎父類構造函數過程如下:

實例化對象c ----> c 調用子類__init__() ---- > 子類__init__()繼承父類__init__() ----- > 調用父類 __init__()

python類的繼承

2.3 子類對父類方法的重寫

如果我們對基類/父類的方法需要修改,可以在子類中重構該方法。如下的talk()方法

python類的繼承

三、類繼承的聯繫

python類的繼承


暑期互聯網遊學夏令營活動:http://www.ujiuye.com/zt/sqxly/?wt.bd=zt36716tt

2017大學生就業扶助基金:http://www.ujiuye.com/zt/jyfc/?wt.bd=zt36716tt

IT學習、就業交流互動群:http://www.ujiuye.com/zt/qqhdjlpt/?wt.bd=zt36716tt

相關推薦

推薦中...