Зоопарк java
создать зоопарк
Конкретных животных должно быть по 3 класса на каждую группу (итого 6 разных типов животных). Обязательно должны быть утка и рыба (рыба хищник или травоядное на выбор).
Создать аналогичную архитектуру для классов еды (Food, Grass, Meat).
Создать интерфейсы определяющие поведение животных (Run, Swim, Fly, Voice). Классы животных должны реализовывать интерфейсы, соответствующие данным конкретным животным. В каждом интерфейсе должен быть не default метод, соответствующий данному интерфейсу (например метод fly() в интерфейсе Fly). Метод voice() интерфейса Voice должен иметь тип возвращаемого значения String.
В классе Animal должен быть метод eat(Food food), который принимает в качестве аргумента еду. Данный метод должен быть переопределен в классах наследниках (подумать в каких). Если переданная еда не подходит животному (хищники не едят траву, травоядные не едят мясо), то на экран должно быть выведено соответствующее предупреждение. Проверку на соответствие типа еды выполнять через instanceof.
Создать класс рабочего зоопарка (Worker) с методами:
- feed(…) – покормить любое животное любой едой. У метода должно быть два параметра – животное и еда.
- getVoice(…) – заставить животное подать голос (вывести на экран то, что говорит конкретное животное). У метода должен быть один параметр – животное, которое издает звук. Метод должен принимать в качестве аргумента только тех животных, которые могут издавать звуки.
В корневом каталоге программы должен быть класс Zoo c точкой входа в программу. Необходимо создать объекты классов животных, еды, работника зоопарка. Вызвать у объекта рабочего все его методы с разными комбинациями параметров (например попытаться накормить хищника и мясом и травой).
Так же создать пруд – массив с животными которые умеют плавать. В пруду может быть несколько животных одного типа, но типов (различных классов) должно быть не менее двух. В цикле вызвать метод swim() у каждого животного из массива.
Добавить на ваше усмотрение необходимые поля класса и логику методов. Например, животные могут иметь шкалу сытости, а разная еда значение, заполняющее эту шкалу. Методы могут выводить на экран то, что они выполняют.
При добавлении полей и вспомогательных методов помнить про принцип инкапсуляции.
Требования:
Классы для животных и их интерфейсы должны находиться в пакете animals;
Классы для еды должны находиться в пакете food;
В программе должны присутствовать абстрактные классы;
В программе должны присутствовать абстрактные методы;
В программе должны присутствовать интерфейсы.
В программе должны быть классы Fish и Duck.
Метод getVoice класса Worker не должен принимать экземпляры класса Fish и других немых животных (при попытке это сделать программа не должна компилироваться).
Instanceof можно применять только в методе eat()
Не использовать Reflection API
В программе не должно быть не абстрактных методов без реализации (с пустым телом метода { }).
Без спецэффектов)) все на уровне 0 +
Заявки фрілансерів
