package xm.sj.ytf;
import com.sun.media.jfxmedia.events.PlayerEvent;
interface Pets{ //宠物接口
public void feed();
public void sleep();
public void play();
public void shower();
/* public void starveness(); //指标没说清要怎么实现,让代码随机数字,还是人为手动
public void tireness(); //随机好说,手动的话,目前我才刚学到IO,只会后台直接设置,客户端交互实现还不会
public void boredom();
public void dirtyness();*/
}
class Cat implements Pets{ //实现宠物接口的猫类
private String name;
private double age;
public Cat(String name,double age) { //构造方法
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(double age) {
this.age = age;
}
public String getName() {
return name;
}
public double getAge() {
return age;
}
//下面覆写接口方法
@Override
public String toString() {
return "这只猫咪叫" + this.name + ",现在" + this.age +"岁了!";
}
@Override
public void feed() {
System.out.println("给猫咪"+this.name+"喂食!");
}
@Override
public void sleep() {
System.out.println("猫咪"+this.name+"在睡觉休息!");
}
@Override
public void play() {
System.out.println("陪猫咪"+this.name+"玩耍!");
}
@Override
public void shower() {
System.out.println("给猫咪"+this.name+"洗澡!");
}
}
class Dog implements Pets{ //实现宠物接口的狗类
private String name;
private double age;
public Dog(String name,double age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(double age) {
this.age = age;
}
public String getName() {
return name;
}
public double getAge() {
return age;
}
public String toString() {
return "这只狗狗叫" + this.name + ",现在" + this.age +"岁了!";
}
@Override
public void feed() {
System.out.println("给狗狗"+this.name+"喂食!");
}
@Override
public void sleep() {
System.out.println("狗狗"+this.name+"在睡觉休息!");
}
@Override
public void play() {
System.out.println("陪狗狗"+this.name+"玩耍!");
}
@Override
public void shower() {
System.out.println("给狗狗"+this.name+"洗澡!");
}
}
//还有什么类型动物,直接按上面格式添加
class Ytf{ //添加一个工厂类进行过度
public static Pets getPet(String className,String petName,double petAge){
if ("cat".equals(className)){
return new Cat(petName,petAge);
}else if ("dog".equals(className)){ //还有其它类,按else if 格式添加
return new Dog(petName,petAge);
}else {
return null;
}
}
}
//下面测试一下
public class creatPet {
public static void main(String[] args) throws Exception {
Pets cat = Ytf.getPet("cat","多多",1.5);
System.out.println(cat.toString());
cat.feed();
cat.play();
cat.shower();
cat.sleep();
}
}
测试结果如下:

本文介绍了如何使用Java创建一个宠物类接口及猫、狗的实现,展示了继承与工厂方法的应用。通过实例展示了如何创建并操作不同类型的宠物对象,包括喂食、睡眠、玩耍和洗澡等行为。
205





