多態:多態指的是一類事物有多種形態
多態性:
class Animal:
def run(self):
raise AtrributeError("子類必須實現這種方法")
class Person(Animal):
pass
p = Person()
p.run()
通過父類主動拋出一個異常,告訴你子類中必須自己要寫這個方法
改子類如下
class Person(Animal):
def run(self):
print("人跑")
再定義幾個子類
def Dog(Animal):
def run(self):
print("狗跑")
def Pig(Animal):
def run(self):
print("豬跑")
person = Person()
dog = Dog()
pig = Pig()
person.run()
dog.run()
pig.run()
上面這就是多態,同屬一個父類,但是他們在run這個方法上表現出不能的形態,這就是多態。
那什么是多態性呢?
還是舉電腦組裝的例子
電腦主機生產商定義了電腦這個類
class Computer():
def usb_run(self):
raise AtrributeError("USB設備自己要開發run方法")
def usb_insert(obj):
obj.run()
class KeyBoard(Computer):
def usb_run(self):
print("鍵盤插入了")
class Mouse(Computer):
def usb_run(self):
print("鼠標插入了")
k = KeyBoard()
m = Mouse()
usb_insert(k)
usb_insert(m)
簡單理解就是定義了一個函數,函數里執行了多態的共同方法,
但是並不區分是哪個對象傳送過來的,具體對象需要通過向函數傳遞參數實現,這種實現方法就是多態性。