python_面向對象_多態和多態性

多態性

同一種調用方式,卻是不同的執行效果.它依賴於繼承,在子類中方便定義統一接口
優點:
(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')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章