# 定义一个基类 Animal
class Animal:
def speak(self):
pass
# 定义子类 Dog,继承自 Animal
class Dog(Animal):
def speak(self):
return "汪汪"
# 定义子类 Cat,继承自 Animal
class Cat(Animal):
def speak(self):
return "喵喵"
# 定义一个函数,接受一个 Animal 类型的对象
def animal_speak(animal):
print(animal.speak())
# 创建 Dog 和 Cat 对象
dog = Dog()
cat = Cat()
# 调用函数,传入不同类型的对象
animal_speak(dog) # 输出: 汪汪
animal_speak(cat) # 输出: 喵喵
Animal
:定义了一个 speak
方法,但没有实现具体的功能。它只是一个接口,用于声明所有子类都应该有 speak
方法。Dog
和 Cat
:分别继承自 Animal
,并实现了各自的 speak
方法。每个子类的 speak
方法返回不同的字符串,表示该动物的声音。animal_speak
:接受一个 Animal
类型的对象,并调用其 speak
方法。由于 Python 的动态类型特性,实际传递的可以是任何继承自 Animal
的对象。animal_speak
),可以调用不同子类的具体实现(Dog.speak
或 Cat.speak
),这就是多态性的体现。这样设计的好处是代码更加灵活和可扩展,新增加一种动物时,只需要定义新的子类并实现 speak
方法,而不需要修改现有的代码逻辑。
上一篇:celery python
下一篇:python 格式化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站