创建Rodent(啮齿动物)抽象类,提供对所有的Rodent通用的抽象方法,获取相关信息。Rodent的子类有Mouse(老鼠)、Mole(鼹鼠)、Hamster(仓鼠),老鼠属杂食,鼹鼠主食昆虫,仓鼠主食植物种子,在子类中,根据该子类特定的行为习性来实现这些通用的抽象方法,如获取子类的类型和主食类型,并输出这些信息。 编写主类,分别创建Mouse、Mole、Hamster的对象,对象调用方法输出相关信息。
时间: 2023-11-28 11:03:40 浏览: 131
rodent:微服务框架
好的,我理解了你的要求。以下是代码实现:
```python
# 创建Rodent抽象类
from abc import ABC, abstractmethod
class Rodent(ABC):
def __init__(self, food_type):
self.food_type = food_type
@abstractmethod
def get_type(self):
pass
@abstractmethod
def get_food_type(self):
pass
# 创建Mouse类
class Mouse(Rodent):
def __init__(self):
super().__init__('杂食')
def get_type(self):
return '老鼠'
def get_food_type(self):
return self.food_type
# 创建Mole类
class Mole(Rodent):
def __init__(self):
super().__init__('昆虫')
def get_type(self):
return '鼹鼠'
def get_food_type(self):
return self.food_type
# 创建Hamster类
class Hamster(Rodent):
def __init__(self):
super().__init__('植物种子')
def get_type(self):
return '仓鼠'
def get_food_type(self):
return self.food_type
# 创建主类
class Main:
def __init__(self):
self.mouse = Mouse()
self.mole = Mole()
self.hamster = Hamster()
def print_info(self):
print(f"{self.mouse.get_type()}的主食类型是{self.mouse.get_food_type()}")
print(f"{self.mole.get_type()}的主食类型是{self.mole.get_food_type()}")
print(f"{self.hamster.get_type()}的主食类型是{self.hamster.get_food_type()}")
# 创建Main类对象并输出相关信息
main = Main()
main.print_info()
```
输出结果为:
```
老鼠的主食类型是杂食
鼹鼠的主食类型是昆虫
仓鼠的主食类型是植物种子
```
阅读全文