多態性
同一種調用方式,卻是不同的執行效果.它依賴於繼承,在子類中方便定義統一接口
優點:
(1)增加了程序的靈活性
以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal)
(2)增加了程序可擴展性
通過繼承animal類創建了一個新的類,子類可以複寫or 繼承父類方法
class Animal:
def run(self):
raise AttributeError('子類必須實現這個方法')
class People(Animal):
def run(self):
print('人正在走')
class Pig(Animal):
def run(self):
print('pig is walking')
class Dog(Animal):
def run(self):
print('dog is running')
def func(obj):
#obj這個參數沒有類型限制,可以傳入不同類型(例如Person類,Dog類)的值
obj.run() #調用的邏輯都一樣,執行的結果卻不一樣
func(peo1)
func(pig1)
多態
同一種事物的多種形態,動物分爲人類,豬類(在定義角度)
class People(Animal):
def run(self):
print('人正在走')
class Pig(Animal):
def run(self):
print('pig is walking')
class Dog(Animal):
def run(self):
print('dog is running')