首页 > 技术文章 > 实现主人领养宠物并带宠物去玩,狗狗叼飞碟,企鹅去南极游泳

yangwenxiang 2019-01-21 16:42 原文

main方法程序代码:

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();
        dog.play();

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

        Pet penguin = new Penguin();
        penguin.setName("QQ");
        penguin.setHealth(77);
        penguin.setLove(76);
        ((Penguin) penguin).setSex(1);
        penguin.print();
        penguin.play();
    }
}

主人类代码:

package com.bdqn;

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

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

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 play() {
        System.out.println("扔飞碟出去,狗狗跑去捡回来......");
    }

    public  void toHospital(){
        System.out.println("打针、吃药");
        super.setHealth(60);
    }
}

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 play() {
        System.out.println("带企鹅去南极游泳......");
    }
}

程序运行结果:

 

推荐阅读