python學習之繼承

2021-09-20 20:19:07 字數 1586 閱讀 2392

python學習之繼承

物件導向程式設計 (oop) 語言的乙個主要功能就是「繼承」。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。

通過繼承建立的新類稱為「子類」或「派生類」。

被繼承的類稱為「基類」、「父類」或「超類」。

繼承的過程,就是從一般到特殊的過程。

要實現繼承,可以通過「繼承」(inheritance)和「組合」(composition)來實現。

在某些 oop 語言中,乙個子類可以繼承多個基類。但是一般情況下,乙個子類只能有乙個基類,要實現多重繼承,可以通過多級繼承來實現。

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

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

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

在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關係應該是「屬於」關係。例如,employee 是乙個人,manager 也是乙個人,因此這兩個類都可以繼承 person 類。但是 leg 類卻不能繼承 person 類,因為腿並不是乙個人。

抽象類僅定義將由子類建立的一般屬性和方法。

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

繼承示例

#!/usr/bin/env python

#coding: utf8

class schoolmember(object):

class teacher(schoolmember):

class student(schoolmember):

if __name__ == '__main__':

指令碼執行結果如下:

new member [peng] is enrolled,now there are [1] members. 

new member [lisi] is enrolled,now there are [2] members. 

new member [xiaowang] is enrolled,now there are [3] members. 

new member [xiaoming] is enrolled,now there are [4] members. 

teacher [peng] is teaching [python] for class [s1]

teacher [lisi] is teaching [linux] for class [s1]

hi, my name is [peng], works for [it trainning] as a [python] teacher !

member [lisi] is dead!

member [xiaoming] is dead!

member [peng] is dead!

member [xiaowang] is dead!

python學習之繼承

python學習之繼承

繼承 什麼時候用繼承 dict 1.當類之間有顯著不同,並且較小的類是較大的類所需要的元件時,用組合比較好 如 描述乙個機器人類,機械人這個大類是由很多不相關的小類組成,如機器胳膊類,腿類,身體類 2.當類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好 如 貓可以 喵喵叫 吃 喝 拉...

python學習之繼承

class p object p class def init self print created an instance of self.class name def foo self print hi,i am p foo class c p def foo self p.foo self 子...

python學習之繼承和多型

home miao python python3 coding utf 8 這是關於繼承和多型 class parent object def init self,name,age self.name name self.age age defget name self print self.nam...