使用多態完成給寵物喂食


主程序類:

package com.bdqn;

public class PetTest {
    public static void main(String[] args) {
        Master master = new Master();
        Pet dog = new Dog();
        dog.setName("黑鼻");
        dog.setHealth(88);
        dog.setLove(78);
        ((Dog) dog).setStrain(1);
        dog.print();
        master.feed(dog);

        System.out.println("**********************");

        Pet penguin = new Penguin();
        penguin.setName("QQ");
        penguin.setHealth(100);
        penguin.setLove(76);
        ((Penguin) penguin).setSex(1);
        penguin.print();
        master.feed(penguin);
    }
}

主人類

package com.bdqn;

public class Master {
    public void feed(Pet pet){
        if(pet instanceof Dog){
            Dog dog = (Dog)pet;
            dog.eat();
        }else if(pet instanceof Penguin){
            Penguin penguin = (Penguin) pet;
            penguin.eat();
        }
    }
}

pet類

package com.bdqn;

public abstract class Pet {
    private String name;
    private int health;
    private int love;

    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    public void setHealth(int health) {
        if(health < 0 || health > 100){
            health = 60;
        }
        this.health = health;
    }
    public int getHealth() {
        return health;
    }

    public void setLove(int love) {
        if(love < 0 || love > 100){
            love = 60;
        }
        this.love = love;
    }
    public int getLove() {
        return love;
    }

    public void print(){
        System.out.println("寵物的自白:");
        System.out.print("我的名字叫"+getName()+",健康值是"+getHealth()+",和主人的親密度是"+getLove());
    }

    public abstract void eat();
}

dog類

package com.bdqn;

public class Dog extends Pet{
    private String strain;

    public String getStrain() {
        return strain;
    }

    public void setStrain(int  strain) {
        if(strain == 1){
            this.strain = "拉布拉多";
            return;
        }
        this.strain = "博美";
    }

    public void print(){
        super.print();
        System.out.println(",我的種類是:"+this.getStrain());
    }

    public void eat() {
        if(getHealth()==100){
            System.out.println("狗狗已經飽了,不需要吃東西了。");
        }else {
            System.out.println("帶狗狗去吃骨頭......");
            setHealth(getHealth() + 3);
            System.out.println("狗狗的健康值為:"+getHealth());
        }
    }

}

penguin類

package com.bdqn;

public class Penguin extends Pet{
    private String sex;

    public String getSex() {
        return sex;
    }

    public void setSex(int sex) {
        if(sex == 1 ){
            this.sex = "Q仔";
            return;
        }
        this.sex = "Q妹";
    }

    public void print(){
        super.print();
        System.out.println(",我的性別是:"+this.getSex());
    }

    public void eat() {
        if(getHealth()==100){
            System.out.println("企鵝已經飽了,不需要吃東西了。");
        }else {
            System.out.println("帶企鵝去吃骨頭......");
            setHealth(getHealth() + 5);
            System.out.println("qie的健康值為:"+getHealth());
        }
    }
}

程序運行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM