多型指的是同乙個方法呼叫,由於物件不同可能會產生不同的行為
比如都是人, 人.china 筷子 人.india 手抓飯
注意兩點 1.多型是方法的多型,屬性沒有多型
2.多型的存在有兩個必要條件 繼承、方法重寫
class
man:
defeat
(self)
:print
("餓了,吃飯了"
)class
chinese
(man)
:def
eat(self)
:print
("用筷子吃飯"
)class
english
(man)
:def
eat(self)
:print
("用刀叉吃飯"
)class
indian
(man)
:def
eat(self)
:print
("徒手吃飯"
)def
maneat
(m):
ifisinstance
(m,man)
:#如果m是man的子類
m.eat(
)else
:print
("不能吃飯"
)#乙個方法呼叫,結果不同
maneat(chinese())
maneat(english(
))
執行結果
用筷子吃飯
用刀叉吃飯
Python學習筆記 多型
物件導向三大特性 1.封裝 根據職責將屬性和方法封裝到乙個抽象的類中 定義類的準則 2.繼承 實現 的重用,相同的 不需要重複的編寫 設計類的技巧 子類針對自己特有的需求,編寫特定的 3.多型 不同的子類物件 呼叫相同的父類方法,產生不同的執行結果 多型 可以增加 的靈活度 以繼承和重寫父類方法為前...
python學習筆記 繼承和多型
程式設計中的繼承和多型其實跟生物學中的遺傳非常類似。例如兒子與父親相比較,有很多相同的地方,那麼這就是遺傳 但是父子間也有很多不一樣的地方,那麼這就是變異,也就是多型。python中的student類繼承了people類中的所有方法和屬性,那麼就有了people所有的屬性和方法。當然student也...
python類的多型學習筆記
1.重寫 多型這個概念依賴於繼承,因為繼承,使得子類擁有了父類的方法,這裡就產生了乙個問題,如果子類有乙個方法和父類的方法同名,那麼子類在呼叫這個方法時,究竟是呼叫子類自己的方法還是父類的方法呢?class base def print self print base class a base de...