Всем привет.
Есть интерфейс CalculateSum, который имеет один единственный метод recieveSum. Также, имеется родительский класс Animal от которого наследуются классы Fish и Bird. И соответственно enum FISH(5), BIRD(8).
Каждый из наследуемых классов (Fish, Bird) имплементится от интерфейса CalculateSum.
class Fish extends Animal implements CalculateSum {}
class Bird extends Animal implements CalculateSum {}
public enum Types {
BIRD(7), FISH(3);
int type_of_animal = 0;
Types(int type) {
this.type_of_animal = type;
}
public int getType_of_animal() {
return type_of_animal;
}
}
Помимо этого есть отдельный класс с методами addAnimal, getAnimal и имеет ArrayList в который записываются животные по указанным пользователем данным.
Например: класс Fish, которому установили Types.FISH добавлен в ArrayList.
Проблема с методом getAnimal
for (Animal animal : animals_list) {
if(*здесь своё условие*) {
*и здесь необходимо вывести на экран recieveSum из класса Bird, либо Fish в зависимости от типа животного*
}
}
При этом, класс Animal не должен имплементится от CalculateSum, а только классы Bird и Fish. Как правильно это реализовать?