Python之物件導向 多型 封裝 第十六天

2021-10-03 08:29:50 字數 1363 閱讀 2666

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 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...