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...