【java】饲养员喂养动物程序设计

以动物园中饲养员给动物喂食为业务背景,让同学们体会“抽象类、类的继承、接口、接口实现类、方法重写和多态”等面向对象思想的综合应用。 

动物园有饲养员,以及狗、猫这两种动物。饲养员给不同的动物喂不同的食物:给
狗喂骨头,给猫喂鱼。动物进食时会发出叫声:狗会汪汪叫,而猫会喵喵叫。

程序模拟饲养员喂食动物的过程,主要功能如下:
( 1) 饲养员说:“欢迎来到动物园!我是饲养员×××”。
(2) 饲养员给狗喂骨头,狗吃食物发出“汪汪~~”的叫声。
( 3) 饲养员给猫喂鱼,猫吃食物发出“喵喵~~”的叫声。

【案例目标】

• 学会分析“饲养员喂养动物”程序设计的实现思路。

• 根据思路独立完成“饲养员喂养动物”程序设计的源代码编写、编译及运行。

• 学会灵活运用接口解决多继承问题。

【案例分析】
案例涉及的对象有饲养员,各种不同动物以及各种不同的食物。这样很容易抽象
出 3 个类:饲养员 Feeder、动物 Animal 和食物 Food。
动物园喂养了猫类和狗类动物,则由 Animal 类派生出 Cat 类、 Dog 类。

同样,由 Food 类可以派生出其子类:骨头 Bone 类、鱼 Fish 类。由于鱼既是一种
食物,实际上也是一种动物。但是 Java 不支持多重继承,因此 Fish 不可能有 Food 和

Animal 两个父类。解决方法是把 Food 和 Animal 其中之一改为接口。考虑到 Cat 类和

Dog 类需要继承 Animal 的很多属性和方法, Food 中虽然也有变量但是数量比 Animal

少,所以我们最终考虑将 Food 定义为接口,让 Fish 和 Bone 去实现接口。

【程序结构】
在这里插入图片描述
【运行代码】
1.

package cn.edu.gpnu.bank.Feeder;

public abstract class Animal {
   
    public String name;

    public Animal(String name) {
   
        this.name = name;
    }

    public String getName() {
   
        return name;
    }

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

    public abstract void eat(Food food);
}

package cn.edu.gpnu.bank.Feeder;

class Bone implements
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值