用python编写一个具有多态特性的“父类”与多个“子类”模型,并在应用中,采用 不同的参数传递,体现多态性。【可以参考动物有猫、狗、老虎等不同子类】
时间: 2024-10-15 13:11:03 浏览: 29
在Python中,我们可以利用抽象基类(Abstract Base Classes, ABCs)和多态特性来创建一个动物的父类以及一系列具体的动物子类。这里我们假设有一个抽象的Animal类,它有一些基础行为,而每个具体的子类,如Cat、Dog和Tiger,会覆盖这些行为并添加它们的独特属性。以下是示例:
```python
from abc import ABC, abstractmethod
# 定义Animal抽象基类
class Animal(ABC):
@abstractmethod
def sound(self):
pass
# 具体子类 Cat
class Cat(Animal):
def sound(self):
return "喵喵"
# 具体子类 Dog
class Dog(Animal):
def sound(self):
return "汪汪"
# 具体子类 Tiger
class Tiger(Animal):
def sound(self):
return "吼吼"
# 应用程序中多态的例子
def animal_sounds(animal_type, *args):
if isinstance(animal_type, Animal): # 检查是否是Animal类型的实例
return animal_type.sound(*args)
else:
print(f"{animal_type} 不是Animal的子类")
# 创建实例并调用多态方法
cat = Cat()
dog = Dog()
tiger = Tiger()
print(animal_sounds(cat)) # 输出:喵喵
print(animal_sounds(dog)) # 输出:汪汪
print(animal_sounds(tiger)) # 输出:吼吼
# 这里还可以传入其他类型的动物(如果添加了相应子类),同样能体现多态
my_pet = Animal() # 当前不知道是什么类型的具体动物
sound = animal_sounds(my_pet) # 输出该动物的声音,取决于实际类型
阅读全文