宠物饿了,需要主人给宠物喂食,不同宠物吃的东西不一样,通过多态实现主人可以统一喂食。宠物有:Dog,狗在吃骨头;Cat,猫在吃鱼;Bird,鸟在吃虫子。
时间: 2024-03-26 18:40:01 浏览: 84
好的,这是一个很好的面向对象设计题目。根据题目要求,我们可以定义一个抽象的宠物类 Pet,然后让 Dog、Cat 和 Bird 类分别继承 Pet 类,并实现自己的 eat() 方法。eat() 方法可以打印各自宠物正在吃的食物。
具体代码如下:
```python
class Pet:
def eat(self):
pass
class Dog(Pet):
def eat(self):
print("狗正在吃骨头")
class Cat(Pet):
def eat(self):
print("猫正在吃鱼")
class Bird(Pet):
def eat(self):
print("鸟正在吃虫子")
```
这样,主人就可以通过调用 Pet 类的 eat() 方法,来喂食不同种类的宠物,实现了多态性。
相关问题
「需求及设计思路」 宠物饿了,需要主人给宠物喂食,不同宠物吃的东西不一样,狗狗吃肉,猫吃鱼,创建父类Pet宠物类,实现吃食eat方法;添加类Dog子类以及Cat子类,分别实现吃食方法,狗吃肉,猫吃鱼,并打印结果; 1. 添加Master类,使用向上转型多态实现给不同宠物喂食方法;编写测试类实现喂食。 2. 实现主人与宠物玩耍功能:使用向下转型多态实现 和狗狗玩接飞盘游戏,狗狗的健康值减少10,与主人亲密度增加5。 和企鹅玩游泳游戏,企鹅的健康值减少10,与主人亲密度增加5。 提示: 给Dog添加接飞盘方法catchingFlyDisc( )
好的,这个是一个简单的面向对象的设计思路。以下是具体的实现代码:
```java
// 宠物类
public class Pet {
public void eat() {
System.out.println("宠物正在吃东西");
}
}
// 狗狗类
public class Dog extends Pet {
@Override
public void eat() {
System.out.println("狗狗正在吃肉");
}
public void catchingFlyDisc() {
System.out.println("狗狗正在接飞盘");
}
}
// 猫类
public class Cat extends Pet {
@Override
public void eat() {
System.out.println("猫正在吃鱼");
}
}
// 主人类
public class Master {
public void feed(Pet pet) {
pet.eat();
}
public void playWith(Pet pet) {
if (pet instanceof Dog) {
Dog dog = (Dog) pet;
dog.catchingFlyDisc();
dog.health -= 10;
this.intimacy += 5;
}
else if (pet instanceof Penguin) {
Penguin penguin = (Penguin) pet;
penguin.swimming();
penguin.health -= 10;
this.intimacy += 5;
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Master master = new Master();
Pet dog = new Dog();
Pet cat = new Cat();
master.feed(dog);
master.feed(cat);
master.playWith(dog);
}
}
```
在这里,我们创建了一个Pet类作为宠物的父类,Dog和Cat作为宠物的子类,分别实现了吃东西的方法。我们还创建了一个Master类来进行喂食和玩耍操作,使用向上转型多态实现给不同宠物喂食方法,使用向下转型多态实现和不同的宠物进行不同的玩耍操作。在测试类中,我们创建了一个主人对象和一只狗和一只猫对象,通过主人对象来进行喂食和玩耍操作。
希望这个例子能够对你有所帮助!
宠物饿了,需要主人给宠物喂食,不同宠物吃的东西不一样,狗向左定,猫吃鱼,创-|||-建议∠Pet无物类,实现吃食eat方法;添加类Dog子类以及Cat子类,分别实现吃食方法,狗吃肉,猫吃鱼,并打印结果;-1.添加Master`,,,用用向上转型多态实现给不同龙物喂食方法;编写测试卷实现喂食。2.实现主人与龙物阮耍功能:使用向下转型多态实现和狗狗折玩接飞盘游戏,狗向的健康值减少10,与主人亲密度增加5。和企鹅玩游泳游戏,企鹅的健康值减少10,与主人亲密度增加5。提示|给Dog添加接飞盘方法 satchingFlyDisc()-给penguin W加游泳方法swimming( )给主人添加 play(pet pet)方法
好的,我来为您解答。
首先,需要创建一个Pet类,其中包含一个eat方法:
```python
class Pet:
def eat(self):
pass
```
然后,需要创建一个Dog类和一个Cat类,它们都是Pet类的子类,并分别实现eat方法:
```python
class Dog(Pet):
def eat(self):
print("狗狗吃肉")
class Cat(Pet):
def eat(self):
print("猫猫吃鱼")
```
接下来,需要创建一个Master类,该类可以向上转型为Pet类,并实现一个feed方法,根据传入的Pet对象来调用eat方法:
```python
class Master:
def feed(self, pet):
pet.eat()
```
最后,创建一个测试用例,测试喂食和玩耍功能:
```python
# 创建宠物对象
dog = Dog()
cat = Cat()
# 创建主人对象
master = Master()
# 喂食
master.feed(dog)
master.feed(cat)
# 玩耍
class Master:
def play(self, pet):
if isinstance(pet, Dog):
pet.satchingFlyDisc()
pet.health -= 10
self.intimacy += 5
elif isinstance(pet, Penguin):
pet.swimming()
pet.health -= 10
self.intimacy += 5
```
以上就是解答,希望能对您有所帮助。
阅读全文