什么是多态

多态:不同的子类调用相同的方法产生不同的结果

多态的关注点在“对象的行为和属性”而非类型

多态的实际应用

class Animal(object):
    def talk(self):
        pass
class Cat(Animal):
    def talk(self):
        print('喵喵喵')

class Dog(Animal):
    def talk(self):
        print('汪汪汪')

def talk(obj):
    obj.talk()


cat = Cat()
dog = Dog()
talk(cat)
talk(dog)

输出结果:
喵喵喵
汪汪汪

def talk(obj): Python不会在代码定义时检查obj是否有talk()方法,而是在实际运行时才会检查。当你调用talk(cat)时,Python会动态地查找cat对象的talk()方法并执行它。