多态实例-一种接口,多种实现

class animal(object):
    def __init__(self,name):
        self.name=name
    def talk(self):
        pass

class Cat(animal):
    def talk(self):
        print("Mou,Mou")
class Dog(animal):
    def talk(self):
        print("Wang Wang------")
c1=Cat("机器猫")
c1.talk()

d1=Dog("苯笨")
d1.talk()

def Animal_talk(obj):
    obj.talk()
Animal_talk(c1)
Animal_talk(d1)

改良版:

class animal(object):
    def __init__(self,name):
        self.name=name
    def talk(self):
        pass
    @staticmethod
    def animal_talk(obj):
        obj.talk()

class Cat(animal):
    def talk(self):
        print("Mou,Mou")
class Dog(animal):
    def talk(self):
        print("Wang Wang------")
c1=Cat("机器猫")
c1.talk()

d1=Dog("苯笨")
d1.talk()

animal.animal_talk(c1)
animal.animal_talk(d1)

 运行结果:

Mou,Mou
Wang Wang------
Mou,Mou
Wang Wang------
原文地址:https://www.cnblogs.com/momo8238/p/7256351.html