对贯穿案例电子宠物系统的类结构进行重构,要求如下:定义Eatable接口,在接口中定义eat()方法,表示吃饭功能。定义FlyingDiscCatchable接口,在接口中定义catchFlying()方法,表示玩飞盘功能。定义Swimmable接口,在接口中定义swimming()方法,表示游泳功能。定义抽象类Pet,包括宠物名称name、健康值health和与主人亲密度love属性,并提供抽象方法print(),用来输出宠物信息。定义狗类Dog,继承Pet类,实现Eatable、FlyingDiscCatchable接口,并重写或实现各个方法。定义企鹅类Penguin,继承Pet类,实现Eatable、Swimmable接口,并重写或实现各个方法。编写测试类,实现狗吃饭、企鹅游泳和狗接飞盘游戏的功能,并输出企鹅信息。
Eatable.java
public interface Eatable { //定义Eatable 接口
public abstract void eat();//吃饭
}
FlyingDiscCatchable.java
public interface FlyingDiscCatchable { //定义玩飞盘接口
public abstract void catchFlying();//玩飞盘
}
Swimmable.java
public interface Swimmable { //定义游泳接口
public abstract void swimming(); //游泳
}
Pet.java
public abstract class Pet {
protected String name; //宠物的名字
protected float health; //健康值
protected float love; //亲密度
public abstract void print(); //抽象函数,打印宠物的信息,由具体类实现
public String getName() { //获取宠物名字
return name;
}
public void setName(String name) { //设置宠物名字
this.name = name;
}
public float getHealth() { //获取健康值
return health;
}
public void setHealth(float health) { //设置健康值
this.health = health;
}
public float getLove() { //获取与主任的亲密度
return love;
}
public void setLove(float love) { //设置与主任的亲密度
this.love = love;
}
}
Dog.java
//定义Dog类,继承Pet类,并实现Eatable ,FlyingDiscCatchable接口
public class Dog extends Pet implements Eatable ,FlyingDiscCatchable {
@Override
public void print() {
// 实现print函数,打印小狗的信息
System.out.println("Dog name:"+name +",health:"+health+",love:"+love);
}
@Override
public void catchFlying() {
// 实现玩飞盘接口
System.out.println("Dog can catchFlying!");
}
@Override
public void eat() {
// 实现吃饭接口
System.out.println("Dog eating!");
}
}
Penguin.java
public class Penguin extends Pet implements Eatable ,Swimmable{
@Override
public void swimming() {
// 实现游泳接口
System.out.println("Penguin swimming!");
}
@Override
public void eat() {
// 实现吃饭接口
System.out.println("Penguin eating!");
}
@Override
public void print() {
// 打印企鹅的信息
System.out.println("Penguin name:"+name +",health:"+health+",love:"+love);
}
}
Test.java
public class Test {
public static void main(String[] args){
Dog d = new Dog(); //重建Dog对象
d.setName("小花狗"); //设置Dog对象的名字
d.setHealth((float) 4.5); //设置健康值
d.setLove(10); //设置亲密度
Penguin p = new Penguin(); //创建企鹅对象
p.setName("小企鹅"); //设置企鹅的名字
p.setHealth((float) 3.8); //设置健康值
p.setLove((float) 9.5); //设置亲密度
//狗吃饭
d.eat();
//企鹅游泳
p.swimming();
//狗接飞盘
d.catchFlying();
d.print(); //打印狗狗信息
p.print();//打印企鹅信息
}
}
//接口
public interface Eatable{
//抽象方法
void eat();
}
//接口
public interface FlyingDiscCatchable{
//抽象方法
void catchFlying();
}
public interface Swimmable{
void swimming();
}
//定义抽象类Pet,包括宠物名称name、健康值health和与主人亲密度love属性,并提供抽象方法print(),用来输出宠物信息。
public abstract class Pet{
float health;
String love;
//抽象方法
abstract void print();
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!