多態-對於不同class 中同一屬性調用(eat)

class Animal(object):  #Animal 類繼承object類
    
    def __init__(self, color):
        self.color=color
    def eat(self):
        print("動物在吃!")
    def run(self):
        print("動物在跑!")

class Cat(Animal):  #Cat 類繼承Animal類
    
    def eat(self):
        print("小貓在吃魚!")

class Dog(Animal):
    
    def __init__(self, name,age,color): #調用父類的初始化方法
        super(Dog, self).__init__(color) # super 調用父類的方法
        self.name=name
        self.age=age
    def eat(self):
            print("狗在啃骨頭!")
    def feed(object):
        object.eat()

#多態        
def feed(obj):
    obj.eat()

an=Animal("黃色")
cat=Cat("橘色")
dog=Dog("小黑",23,"黑色")

feed(dog)    #在執行同樣一種方法屬性時,選擇性調用,在本例中an/cat/dog 中都有eat屬性,只需要更改an/cat/dog即可實現其eat屬性調用
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章