Python筆記(十四) 類的多型

2021-08-20 16:57:11 字數 1545 閱讀 9890

多型:一種介面,多種實現; 允許將子類型別的指標賦值給父類型別的指標。

封裝:隱藏實現細節,使**模組化;

繼承:可以擴充套件已存在的**模組(類);

多型:介面重用,為了類在繼承和派生時,保證使用「家族」中任一類的例項的某一屬性時正確呼叫;

例如定義乙個類:動物

再定義貓,狗

class

animal

(object):

def__init__

(self,name):

self.name = name

deftalk

(self):

pass

class

dog(animal):

deftalk

(self):

print("woof,woof!")

class

cat(animal):

deftalk

(self):

print("meow")

a = dog("alan")

b = cat("evan")

a.talk()

b.talk()

>> woof,woof!

>> meow

先例項化後,然後分別呼叫方法

如果想使用animal_talk直接輸出呢?

# 再加一句:

defanimal_talk

(obj):

obj.talk()

a = dog("alan")

b = cat("evan")

animal_talk(a)

animal_talk(b)

這樣就有了統一的介面,需要誰叫就傳誰進來

即一種介面,多種實現;

將該方法放入父類中

class

animal

(object):

def__init__

(self,name):

self.name = name

deftalk

(self):

pass

defanimal_talk

(obj):

obj.talk()

class

dog(animal):

deftalk

(self):

print("woof,woof!")

class

cat(animal):

deftalk

(self):

print("meow")

a = dog("alan")

b = cat("evan")

animal.animal_talk(a)

animal.animal_talk(b)

>> woof,woof!

>> meow

python 學習筆記(十四)

coding utf8 author liwei 定製類的練習 class student object def init self,name self.name name a student liwei print a str 對以上例子的使用 print str 對以上例子的使用 class s...

Python學習筆記(十四)

十六章 json 過長的位址名不能使用分行 filename d pycharmprograms codes 導致 syntaxerror eol while scanning string literal python非字串 現中文字元 data pd.dataframe data zip lon...

(七十四)型別別名 別名的建立

例如 clock t one start 實質上就是建立了乙個int型別的變數one start,雖然在變數名前面寫的是clock t,但他實質上是int型別的別名。建立別名的方法 使用預處理器 define 別名 原名 如 define abcdouble 在編譯器進行處理的時候,將abc轉為do...