自行设计一个实例并编写程序实现类的继承与组合
时间: 2023-06-05 21:48:05 浏览: 206
假设我们要设计一个动物园的系统,其中有多种动物,每种动物都有自己的属性和行为。我们可以设计一个Animal类作为基类,然后派生出不同的子类,如Lion、Tiger、Elephant等。同时,我们还可以设计一个Zoo类,将不同的动物组合在一起,形成一个完整的动物园。
下面是一个简单的示例代码:
```python
class Animal:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def eat(self):
print(f"{self.name} is eating.")
def sleep(self):
print(f"{self.name} is sleeping.")
class Lion(Animal):
def roar(self):
print(f"{self.name} is roaring.")
class Tiger(Animal):
def swim(self):
print(f"{self.name} is swimming.")
class Elephant(Animal):
def trumpet(self):
print(f"{self.name} is trumpeting.")
class Zoo:
def __init__(self):
self.animals = []
def add_animal(self, animal):
self.animals.append(animal)
def show_animals(self):
for animal in self.animals:
print(f"{animal.name} ({animal.age} years old, {animal.gender})")
# 创建动物实例
lion = Lion("Simba", 5, "male")
tiger = Tiger("Tony", 3, "female")
elephant = Elephant("Dumbo", 10, "male")
# 调用动物方法
lion.eat()
tiger.swim()
elephant.sleep()
# 创建动物园实例
zoo = Zoo()
# 添加动物到动物园
zoo.add_animal(lion)
zoo.add_animal(tiger)
zoo.add_animal(elephant)
# 显示动物园中的动物
zoo.show_animals()
```
输出结果:
```
Simba is eating.
Tony is swimming.
Dumbo is sleeping.
Simba (5 years old, male)
Tony (3 years old, female)
Dumbo (10 years old, male)
```
在上面的示例中,Animal类是基类,Lion、Tiger、Elephant类是派生类,它们继承了Animal类的属性和方法。Zoo类是组合类,它将不同的动物组合在一起,形成一个完整的动物园。我们可以通过调用动物的方法来展示它们的行为,也可以通过动物园的方法来展示它们的属性。
阅读全文