多型:一種介面,多種實現; 允許將子類型別的指標賦值給父類型別的指標。封裝:隱藏實現細節,使**模組化;
繼承:可以擴充套件已存在的**模組(類);
多型:介面重用,為了類在繼承和派生時,保證使用「家族」中任一類的例項的某一屬性時正確呼叫;
例如定義乙個類:動物
再定義貓,狗
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...