多态
用多态实现主人领养宠物并与宠物玩耍、以及宠物喂食
package java_2019_1_21; /** * 父类,宠物类 * @author Administrator */ public abstract class Pet { private String name; private int macy; private int health; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMacy() { return macy; } public void setMacy(int macy) { if(macy<0) { System.out.println("亲密度为正整数,您输入有误,默认为60"); this.macy = macy; }else { this.macy = macy; } } public int getHealth() { return health; } public void setHealth(int health) { if(health<0) { System.out.println("健康值为正整数,您输入有误,默认为60"); this.health = health; }else { this.health = health; } } //宠物玩耍 public abstract void play(); //宠物喂食 public abstract void eat(); }
package java_2019_1_21; /** * 狗狗类 * @author Administrator */ public class Dog extends Pet{ public Dog() {} public Dog(String name,int macy,int health) { super.setName(name); super.setMacy(macy); super.setHealth(health); } public void play() { System.out.println("跟狗狗一起玩,狗狗会接飞盘!"); } public void eat() { System.out.println("正在给狗狗喂食..."); this.setHealth(this.getHealth()+3); } }
package java_2019_1_21; /** * 企鹅类 * @author Administrator */ public class Penguin extends Pet{ public Penguin() {} public Penguin(String name,int macy,int health) { super.setName(name); super.setMacy(macy); super.setHealth(health); } public void play() { System.out.println("跟企鹅一起游戏!"); } public void eat() { System.out.println("正在给企鹅喂食..."); this.setHealth(this.getHealth()+5); } }
package java_2019_1_21; /** * 主人类 * @author Administrator */ public class Master { //宠物玩耍 public static void play(Pet p) { if(p instanceof Dog) { Dog d = (Dog)p; d.play(); }else if(p instanceof Penguin) { Penguin pen = (Penguin)p; pen.play(); } } //宠物喂食 public static void eat(Pet p) { if(p.getHealth()<100) { if(p instanceof Dog) { if(p.getHealth()+3>100) { System.out.println("现在狗狗的饱食度有"+p.getHealth()+",不需要喂食了!"); }else { Dog d = (Dog)p; d.eat(); } }else if(p instanceof Penguin) { if(p.getHealth()+5>100) { System.out.println("现在企鹅的饱食度有"+p.getHealth()+",不需要喂食了!"); }else { Penguin pen = (Penguin)p; pen.eat(); } } } } }
package java_2019_1_21; /** * 测试类 * @author Administrator */ public class Test { public static void main(String[] args) { Pet p = new Dog("小白",55,98); Pet p1 = new Penguin("小QQ",55,88); System.out.println("******玩耍测试*****"); Master.play(p); Master.play(p1); System.out.println("******喂测试***"); Master.eat(p); Master.eat(p1); } }