使用父类作为方法形参和返回值实现多态 使用多态实现主人领养三只宠物并喂养宠物的过程
时间: 2024-03-02 13:49:39 浏览: 130
好的,我可以为您解答这个问题。
首先,我们可以创建一个宠物类 Pet 作为父类,包含宠物的基本属性和行为。然后,我们可以创建三个子类 Dog、Cat 和 Fish,分别继承宠物类 Pet,并且重写一些方法,实现不同的行为。
代码示例:
```python
class Pet:
def __init__(self, name, age):
self.name = name
self.age = age
self.health = 100
def eat(self):
self.health += 10
def play(self):
self.health -= 10
class Dog(Pet):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def bark(self):
print("汪汪!")
class Cat(Pet):
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color
def meow(self):
print("喵喵!")
class Fish(Pet):
def __init__(self, name, age, species):
super().__init__(name, age)
self.species = species
def swim(self):
print("游泳!")
```
接下来,我们可以创建一个主人类 Owner,包含领养宠物和喂养宠物的方法。这些方法将以父类 Pet 作为形参和返回值,实现多态。
代码示例:
```python
class Owner:
def __init__(self, name):
self.name = name
self.pets = []
def adopt_pet(self, pet):
self.pets.append(pet)
def feed_pet(self, pet):
pet.eat()
```
最后,我们可以创建一个测试函数,创建一个主人对象和三个宠物对象,然后领养宠物并喂养宠物。
代码示例:
```python
def test():
# 创建主人对象
owner = Owner("张三")
# 创建宠物对象
dog = Dog("旺财", 2, "拉布拉多")
cat = Cat("小白", 1, "白色")
fish = Fish("小鱼", 1, "金鱼")
# 领养宠物
owner.adopt_pet(dog)
owner.adopt_pet(cat)
owner.adopt_pet(fish)
# 喂养宠物
for pet in owner.pets:
owner.feed_pet(pet)
```
这样,我们就成功地使用父类作为方法形参和返回值实现了多态,并且使用多态实现了主人领养三只宠物并喂养宠物的过程。
阅读全文