Реализуйте все классы и интерфейсы как это показано на UML-диаграмме внизу.
Пусть само тело методов выводит сообщения на экран вида Cat.eat, где Cat имя класса, а eat - метода, чтобы можно было понять вызов какого метода и класса произошел.
Абстрактный класс Animal уже создан, нужно дополнить иерархию в соответствии с диаграммой.
Пусть все типы содержат конструкторы без аргументов, вызывающие конструктор Animal c передачей числа конечностей (например super(4)).
public abstract class Animal {
protected int legs;
public Animal(int legs) {
this.legs = legs;
}
public abstract void walk();
public abstract void eat();
}
public abstract class Animal {
protected int legs;
public Animal(int legs) {
this.legs = legs;
}
public abstract void walk();
public abstract void eat();
}