案例描述
饲养员在给动物喂食时,给不同的动物喂不同的食物。例如,饲养员XXX拿着XX克bone喂养dog;饲养员XXX拿着XX克fish喂养cat。
本案例要求编写一个程序模拟饲养员喂食动物的过程,案例要求如下:
饲养员XXX拿着XX克bone喂养dog
饲养员XXX拿着XX克fish喂养cat
动物类
public class Animal {
public void eat(){
System.out.println("开饭时间到了.....");
}
}
Cat类
public class Cat extends Animal {
public void eat(Fish fish){
eat();
System.out.println(this+"吃"+fish);
}
public String toString(){
return"Cat";
}
}
Food类
public class Food {
private int weight;
public Food(int weight){
this.weight =weight;
}
public int getWeight(){
return weight;
}
}
Bone类
public class Bone extends Food {
public Bone(int weight) {
super(weight);
}
public String toString(){
return"Dog";
}
}
Dog类
public class Dog extends Animal {
public void eat(Bone bone){
eat();
System.out.println(this+"吃"+bone);
}
public String toString(){
return"Dog";
}
}
Fish类
public class Fish extends Food {
public Fish(int weight){
super(weight);
}
public String toString(){
return"Fish";
}
}
Feeder类(饲养员类)
public class Feeder {
private String name;
public Feeder(String name) {
this.name = name;
}
public void feed(Cat cat,Fish fish){
cat.eat(fish);
System.out.println("饲养员"+name+"拿着"+fish.getWeight()+"克"+fish+"喂养"+cat+"!");
}
public void feed(Dog dog,Bone bone){
dog.eat(bone);
System.out.println("饲养员"+name+"拿着"+bone.getWeight()+"克"+bone+"喂养"+dog+"!");
}
}
测试类(test)
public class test {
public static void main(String[] args) {
Feeder fd = new Feeder("小刘");
Dog dog=new Dog();
Bone bone=new Bone(400);
fd.feed(dog, bone);
System.out.println("=============");
fd.feed(new Cat(),new Fish(500));
}
}