【饲养员喂养动物】
1、案例描述
饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声。例如,给小狗喂骨头,小狗会“汪汪”叫;给小猫喂食,小猫会“喵喵”叫。
本案例要求编写一个程序模拟饲养员给动物喂食的过程,案例要求如下。
(1)饲养员给小狗喂骨头,小狗“汪汪”叫。
(2)饲养员给小猫喂小鱼,小猫“喵喵”叫。
2、案例目的
(1)学会分析“饲养员喂养动物”案例的实现思路
(2)根据思路完成“饲养员喂养动物”案例的代码实现、编译及运行
(3)学会灵活运用接口解决多继承问题
3、运行结果
4、代码实现
package cn.itcast.example;
abstract class Animal{
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
abstract void Jiao();
abstract void eat(Food food);
}
class Dog extends Animal{
public void Jiao() {
System.out.println("汪汪汪~~~~!");
}
void eat(Food food) {
System.out.println(super.getName() + "正在吃着香喷喷的:" + food.getName());
}
public Dog(String name) {
super(name);
}
}
class Cat extends Animal{
public void Jiao() {
System.out.println("喵喵喵~~~~!!");
}
void eat(Food food) {
System.out.println(super.getName() + "正在吃着香喷喷的:" + food.getName());
}
public Cat(String name) {
super(name);
}
}
interface Food{
String getName();
}
class Bone implements Food{
public String getName() {
return "骨头";
}
}
class Fish implements Food{
public String getName() {
return "黄花鱼";
}
}
class Breeder{
private String name;
public Breeder(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void hy() {
System.out.println("欢迎来到动物园!");
System.out.println("我是饲养员:" + getName());
}
public void wei(Animal a, Food food) {
a.eat(food);
}
}
public class example {
public static void main (String[] arge) {
Breeder b = new Breeder("小华");
b.hy();
Animal cat = new Cat("小猫");
cat.Jiao();
Food f1 = new Fish();
b.wei(cat, f1);
Animal dog = new Dog("小狗");
dog.Jiao();
Food f = new Bone();
b.wei(dog,f);
}
}