用java实现主人与宠物玩耍功能 ,(1)和狗狗玩接飞盘游戏,狗狗的健康值减少10,与主人亲密的增加5。 (2)和企鹅玩游泳游戏,企鹅的健康值减少10,与主任亲密的增加5, 要求运用java中多态
时间: 2024-02-21 15:56:56 浏览: 185
好的,我来为您解答这个问题。
首先,我们可以定义一个抽象的宠物类 Pet,其中包含宠物的基本属性和方法,例如健康值、亲密度、玩耍等。然后,我们再定义两个具体的子类,分别为 Dog 和 Penguin,分别对应着狗狗和企鹅。
接下来,我们可以定义一个 Playable 接口,其中包含 play() 方法,表示宠物可以玩耍。这样,我们可以在子类中实现 play() 方法,分别对应着狗狗和企鹅的玩耍方式。
最后,我们在主人类中定义一个 playWithPet() 方法,接受一个 Pet 类型的参数,表示主人与宠物玩耍。在该方法中,我们可以调用 Pet 类型的 play() 方法,实现与宠物的互动,同时根据不同的宠物类型,修改宠物的健康值和亲密度。
下面是具体的代码实现:
```java
// Pet 类,表示宠物
public abstract class Pet {
protected int health; // 健康值
protected int intimacy; // 亲密度
public Pet(int health, int intimacy) {
this.health = health;
this.intimacy = intimacy;
}
public abstract void play(); // 玩耍
public int getHealth() {
return health;
}
public int getIntimacy() {
return intimacy;
}
}
// Dog 类,表示狗狗
public class Dog extends Pet {
public Dog(int health, int intimacy) {
super(health, intimacy);
}
@Override
public void play() {
System.out.println("和狗狗玩接飞盘游戏");
health -= 10;
intimacy += 5;
}
}
// Penguin 类,表示企鹅
public class Penguin extends Pet {
public Penguin(int health, int intimacy) {
super(health, intimacy);
}
@Override
public void play() {
System.out.println("和企鹅玩游泳游戏");
health -= 10;
intimacy += 5;
}
}
// Playable 接口,表示可以玩耍的宠物
public interface Playable {
void play();
}
// 主人类
public class Master {
public void playWithPet(Pet pet) {
System.out.println("主人正在和宠物玩耍");
pet.play();
System.out.println("宠物的健康值为:" + pet.getHealth());
System.out.println("宠物与主人的亲密度为:" + pet.getIntimacy());
}
}
```
这样,我们就实现了用 Java 实现主人与宠物玩耍功能,并且运用了多态的思想。
阅读全文
相关推荐


















