「需求及设计思路」 宠物饿了,需要主人给宠物喂食,不同宠物吃的东西不一样,狗狗吃肉,猫吃鱼,创建父类Pet宠物类,实现吃食eat方法;添加类Dog子类以及Cat子类,分别实现吃食方法,狗吃肉,猫吃鱼,并打印结果; 1. 添加Master类,使用向上转型多态实现给不同宠物喂食方法;编写测试类实现喂食。 2. 实现主人与宠物玩耍功能:使用向下转型多态实现 和狗狗玩接飞盘游戏,狗狗的健康值减少10,与主人亲密度增加5。 和企鹅玩游泳游戏,企鹅的健康值减少10,与主人亲密度增加5。 提示: 给Dog添加接飞盘方法catchingFlyDisc( )
时间: 2023-10-08 13:11:34 浏览: 174
好的,这个是一个简单的面向对象的设计思路。以下是具体的实现代码:
```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类来进行喂食和玩耍操作,使用向上转型多态实现给不同宠物喂食方法,使用向下转型多态实现和不同的宠物进行不同的玩耍操作。在测试类中,我们创建了一个主人对象和一只狗和一只猫对象,通过主人对象来进行喂食和玩耍操作。
希望这个例子能够对你有所帮助!
阅读全文