day06_04 多态

__author__ = "Alex Li"


class Animal:
    def __init__(self, name):  # Constructor of the class
        self.name = name

    def talk(self):  # Abstract method, defined by convention only
        pass #raise NotImplementedError("Subclass must implement abstract method")

    @staticmethod
    def animal_talk(obj):
        obj.talk()

class Cat(Animal):
    def talk(self):
        print('Meow!')


class Dog(Animal):
    def talk(self):
        print('Woof! Woof!')


d = Dog("陈荣华")
# d.talk()

c = Cat("徐良伟")
# c.talk()

#父类多态接口重用
Animal.animal_talk(c)
Animal.animal_talk(d)


# #普通函数接口重用
# def animal_talk(obj):
#     obj.talk()
#
# Animal.animal_talk(c)
# Animal.animal_talk(d)

原文地址:https://www.cnblogs.com/netflix/p/14854945.html