多态

用多态实现主人领养宠物并与宠物玩耍、以及宠物喂食

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);
    }
}

 

posted @ 2019-01-22 12:56  may程  阅读(260)  评论(0编辑  收藏  举报