1、對多型的理解:多型和繼承不分家,多型實際上是依附於繼承的兩種含義的,「改變」和」擴充套件「,多型就是繼承的兩層含義的乙個具體實現機制。即:呼叫不同的類例項化物件下的相同方法,實現的過程不一樣。
多型的具例項:以水的三種形態為例
class
h2o:
def__init__
(self,name,temperature)
: self.name=name
self.temperature=temperature
defturn_ice
(self)
:if self.temperature<0:
print
("%s溫度太低結冰了"
%self.name)
elif self.temperature>
0and self.temperature<
100:
print
("%s液化成水"
%self.name)
elif self.temperature<0:
print
("%s溫度太高變成了水蒸氣"
%self.name)
class
water
(h2o):
pass
class
ice(h2o)
:pass
class
stream
(h2o)
:pass
a=water(
"水",28)
b=ice(
"冰",-20
)c=steam(
"蒸汽"
,2000
)
2、封裝:封裝的意義在於隱藏,」封」指的封閉,「裝」指的是把東西裝進去,類的屬性就好比東西,類就相當於封裝東西的容器。
3、封裝的三種層面:
(1)第乙個層面:類就是乙個麻袋,本身就是封裝
(2)第二個層面:類中定義私有屬性,只在內部使用,外部無法訪問,這裡要說到python中的兩個約定(僅僅是約定而已,不做強行限制)
class
test
: _a=
"hahaha"
def__init__
(self,name,age)
: self.name=name
self.age=age
#介面函式
defget_a
(self)
:print
(_a)
p=test(
"mary",18
)p.get_a(
)#輸出結果:hahaha
Python之物件導向 多型
定義 父類的同一種動作或者行為,在不同的子類上有不同的實現。作用 在繼承的基礎上,體現型別的個性化 乙個行為有不同的實現 增強程式擴充套件性,體現開閉原則。重寫 子類實現了父類中相同的方法 方法名 引數 在呼叫該方法時,實際執行的是子類的方法。快捷鍵 ctrl o 示例 class parent d...
python物件導向 封裝and多型
為什麼講封裝之前要將這個東西?我才不會說為什麼 首先 python沒有介面類這個概念 哈哈哈.神經病 python抽象類和介面類更接近於一種規範,例如,我吃蘋果,吃香蕉,吃梨,這些我都可以統一歸到吃水果這個類中,但是我能吃到這個水果嗎?水果這個籠統的東西我能吃到嗎,我只能吃到具體的香蕉什麼的.這個規...
python之物件導向
類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...