python 物件導向介紹之多型例項

2022-09-08 23:09:18 字數 1447 閱讀 6603

一. 多型

一種介面,多種實現。

多型性(polymorphisn)是允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。

簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。

那麼,多型的作用是什麼呢?我們知道,封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的**模組(類);它們的目的都是為了——**重用。

而多型則是為了實現另乙個目的——介面重用!多型的作用,就是為了類在繼承和派生的時候,

保證使用「家譜」中任一類的例項的

某一屬性時的正確呼叫。

pyhon 很多語法都是支援多型的,比如 len(),sorted(), 你給len傳字串就返回字串的長度,傳列表就返回列表長度。

1

class

animal(object):

2def

__init__(self, name): #

constructor of the class

3 self.name =name45

def talk(self): #

abstract method, defined by convention only

6pass7#

raise notimplementederror("subclass must implement abstract method")89

defanimal_talk(obj):

10obj.talk()

1112

class

cat(animal):

13def

talk(self):

14print('

%s: 喵喵喵!

' %self.name)

1516

17class

dog(animal):

18def

talk(self):

19print('

%s: 汪!汪!汪!

' %self.name)

2021

2223 d = dog("

xiaolaozi")

24#d.talk()

2526 c = cat("

zhangsan")

27#c.talk()

2829

#以上是分別呼叫才可以實現一起叫,有沒有一種可能用animal.talk(),一次呼叫讓他們一起叫?

30animal_talk(d)

31animal_talk(c)32#

def animal_talk(obj):

33 obj.talk() 還沒有放到父類裡面,還不是真正意義上的多型。用靜態的方法可以放到父類裡,後面再學。哈哈哈

python物件導向之多型

多型 以封裝和繼承為前提 不同的子類物件呼叫相同的方法 產生不同的執行結果 class dog object def init self,name self.name name def game self print s 開心的玩耍 self.name class gaifei dog 父類的方法不...

python 物件導向之多型

多型是什麼?用一句話來概括下,多型就是同一操作 方法 作用於不同的物件時,可以有不同的解釋,產生不同的執行結果。usr bin env python coding utf 8 time 2017 12 26 0026 15 18 author ming class person object def...

物件導向之多型

多型即事物存在的多種形態 要有繼承 要有方法重寫 要有父類引用指向子類物件 1,多型中的成員訪問特點之成員變數 編譯看左邊 父類 執行看左邊 父類 2,多型中的成員訪問特點之成員方法 編譯看左邊 父類 執行看右邊 子類 3,多型中的成員訪問特點之靜態成員方法 編譯看左邊 父類 執行看左邊 父類 總結...