任务二:实现多态(继承) 1. 设计一个动物类Animal,定义其属性name及weight,再定义一个带有名称及重量两个参数的构造方法,成员方法eat()、sleep()、breathe()、info()。 2. 设计动物类的子类Sheep以及Wolf,再分别在两个类中定义一个带有名称及重量两个参数的构造方法及eat方法。 3. 设计一个类Zoo代表动物园,定义一个checkAnimal的方法,包括以下功能:1)查看动物信息,如调用info()方法,2)查看动物的状态,如调用eat()方法。
时间: 2023-06-23 13:08:50 浏览: 214
以下是实现多态的代码:
```python
# 定义动物类Animal
class Animal:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def eat(self):
print(f"{self.name} is eating.")
def sleep(self):
print(f"{self.name} is sleeping.")
def breathe(self):
print(f"{self.name} is breathing.")
def info(self):
print(f"{self.name} weighs {self.weight} kg.")
# 定义Sheep子类
class Sheep(Animal):
def __init__(self, name, weight):
super().__init__(name, weight)
def eat(self):
print(f"{self.name} is eating grass.")
# 定义Wolf子类
class Wolf(Animal):
def __init__(self, name, weight):
super().__init__(name, weight)
def eat(self):
print(f"{self.name} is eating meat.")
# 定义Zoo类
class Zoo:
def __init__(self):
self.animals = []
def addAnimal(self, animal):
self.animals.append(animal)
def checkAnimal(self):
for animal in self.animals:
animal.info()
animal.eat()
```
使用方法如下:
```python
# 创建动物园对象
zoo = Zoo()
# 创建动物对象
sheep = Sheep("Tommy", 50)
wolf = Wolf("Blackie", 100)
# 将动物加入动物园
zoo.addAnimal(sheep)
zoo.addAnimal(wolf)
# 查看动物信息和状态
zoo.checkAnimal()
```
输出结果:
```
Tommy weighs 50 kg.
Tommy is eating grass.
Blackie weighs 100 kg.
Blackie is eating meat.
```
阅读全文