Java中类的继承,对象多态,希望有人解答一下

img


Animal类具有eat(Food food)方法,功能是输出形如"It's time to eat Fish."的语句,其中“Fish”是food对象的类名。

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+".");

    }   

}