多态使用案例

使用多态实现为宠物喂食

宠物饿了,主人需要为宠物喂食,使用多态实现该过程
不同宠物吃的东西不一样
不同宠物吃完东西后恢复健康值不一样
健康值达到100时,不需要继续喂食

创建一个Matser类

public class Master {
    public void feed(Pet pet, String food){
        pet.eat(food);
    }
}

再创建一个Pet父类

public class Pet {
    private  int  healthy;


    public Pet(int healthy) {
        this.healthy = healthy;
    }

    public Pet() {
    }

    public  void eat(String  food){
        System.out.println("宠物吃"+food);
    }
    public int getHealthy() {
        return healthy;
    }

    public void setHealthy(int healthy) {
        this.healthy = healthy;
        if (this.healthy>100){
            this.healthy=100;
            System.out.println("宠物已经吃饱了,不能再喂了");
        }
    }
}

创建Dog子类

public class Dog extends Pet {
    public Dog(int healthy) {
        super(healthy);
    }

    public Dog() {
    }

    @Override
    public void eat(String food) {
        System.out.println("狗狗吃"+food+",吃饱后健康值加3");
        setHealthy(getHealthy()+3);
    }
}

创建Penguin子类

public class Penguin extends Pet {
    public Penguin(int healthy) {
        super(healthy);
    }

    public Penguin() {
    }

    @Override
    public void eat(String food) {
        System.out.println("企鹅吃"+food+",吃饱后健康值加5");
        setHealthy(getHealthy()+5);
    }
}

创建测试类

public class Test {


    public static void main(String[] args) {

        Master m = new Master();
        Dog dog = new Dog(60);
        m.feed(dog,"骨头");
        System.out.println(dog.getHealthy());
        Penguin penguin = new Penguin(50);
        m.feed(penguin,"鱼");
        System.out.println(penguin.getHealthy());
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值