Dog类需要重写Object类的toString()方法,返回类名字符 串;还要重写Animal类的eat()方法,增加输出形如“Dog like Bone”语句的功能,其中“Bone”是food对象的类名。
Cat类与Dog类相似;
Food类具有weight属性,和适当的构造方法和置取方法;
Bone类和Fish类都需要重写Object类的toString()方法,返回类名字符串;
要求编程实现这些类,使给定的Test类能正常运行,并实现指定的输出内容(Feeder类已给出)。
public class Test{
public static void main(String[] args) {
Feeder fd = new Feeder("Tom");
Dog dog = new Dog();
Bone bone = new Bone(500);
fd.feed(dog, bone);
System.out.println("-----------------");
fd.feed(new Cat(), new Fish(100));
}
}
class Feeder {
private String name;
public Feeder(String name) {
this.name = name;
}
public void feed(Animal a, Food f) {
a.eat(f);
System.out.println("Feeder "+name+" feed "+a+ " with "+f.getWeight()+"g "+f+".");
}
}