@grazer

Java: как правильно реализовать интерфейс?

Всем привет.
Есть интерфейс 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. Как правильно это реализовать?
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
@Dr3g0nra1der
Backend Java Developer
for (Animal animal : animals_list) {
      switch(animal.type_of_animal){
          case "3":
              FISH.reciveSum();
              continue;
          case "7":
              BIRD.reciveSum();
              continue;
    }
}


Примерно структура такая
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы