什么是多态
多态:不同的子类调用相同的方法产生不同的结果
多态的关注点在“对象的行为和属性”而非类型
多态的实际应用
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()方法并执行它。