多态,即多种状态,完成某个行为时,使用不同的对象会得到不同的状态。
函数形参声明接受父类对象,实际传入父类的子类对象进行工作。
由父类确定方法,子类各自决定怎样实现,方法体空实现为抽象方法,包含抽象方法的为抽象类,用于做顶层设计。
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
print("Woof!")
class Cat(Animal):
def speak(self):
print("Meow!")
def animal_speak(animal: Animal): # 类型注解为Animal类型
animal.speak()
dog = Dog()
cat = Cat()
animal_speak(dog)
animal_speak(cat)