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(); } }
测试结果如下: