создать зоопарк

Конкретных животных должно быть по 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 +

4 года назад
guest_16190677946514
4 года в сервисе
Был
4 года назад

Заявки фрилансеров

Александр
 
26 лет
4 года в сервисе
Был
4 года назад
4 года назад
Руслан
 
28 лет
4 года в сервисе
Был
4 года назад
4 года назад
Дмитрий
 
39 лет
4 года в сервисе
Был
4 года назад
4 года назад
Олег
 
36 лет
14 лет в сервисе
Был
4 года назад
4 года назад
Никита
 
26 лет
4 года в сервисе
Был
3 года назад
4 года назад
Матвей
 
22 года
4 года в сервисе
Был
4 года назад
4 года назад
  • Похожие заказы

  • Задача заключается в парсинге сайта profitbase.ru для получения данных о недвижимости с использованием языка программирования C#. Предоставляется заготовка проекта на основе библиотеки классов .NET Framework с простой структурой данных, которую нужно заполнить согласно техническому заданию.

    Прикладное ПО1 исполнитель
    Завершен
    4 года назад
  • $3

    Необходимо доработать недоделанный логический калькулятор на Python, добавив новые операции согласно прикрепленным таблицам истинности. Также требуется реализовать графическое представление действий с помощью кругов Эйлера. Работа с нулями и единицами не вызывает вопросов.

    Закрыт
    4 года назад
  • Требуются специалисты для разработки CRM системы с использованием C#. Необходимы знания WinForms, .NET Framework 4+, Entity Framework и ASP.NET WebApi 2. Задача включает создание прикладного ПО с учетом всех требований.

    Закрыт
    4 года назад
  • Необходимо разработать решение для блокировки определенной области экрана в операционной системе Windows, чтобы она стала некликабельной. Проект должен обеспечить предотвращение взаимодействия с заблокированной зоной, обеспечивая удобство работы с приложением.

    Закрыт
    4 года назад
  • $5000

    Ищется разработчик для создания площадки по созданию и продаже токенов ERC721 на Blockchain Ethereum. Предоставляются кликабельные схемы и дизайны страниц. Используемые технологии: Metamask, Truffle, Web3js, Open Zeppelin, IPFS, Mocha/Chai, Javascript/HTML/CSS. Гарантирована профессиональная атмосфера и быстрая оплата.

    Прикладное ПОнет заявок
    Закрыт
    4 года назад
  • $8000

    Создание клиент-серверного приложения для сервиса адресной парковки, управляемого автоматическими блокираторами. Реализация функций сканирования QR кодов, регистрации пользователей, привязки банковских карт и администрирования. Обратите внимание на необходимость двухэтапной идентификации и экранов для управления арендой парковочных мест.

    Закрыт
    4 года назад
  • Требуется разработать скрипт на языке программирования Pine для TradingView, который будет извлекать данные с одной учетной записи и передавать их на другую с изменениями. Необходимо также настроить отправку уведомлений о событиях на графиках в Telegram-канал.

    Прикладное ПОнет заявок
    Закрыт
    4 года назад
  • Требуется доработать программу, написанную на Python с использованием Django и PostgreSQL. Необходимо скорректировать работоспособность приложения и восстановить функцию отображения данных в конечной форме. Ожидается визуализация формы отчёта.

    Закрыт
    4 года назад
  • $25

    Необходимо скомпилировать библиотеку mysql.dll и lybmysql.dll для работы из скриптов LUA 5.3 на Windows64. Библиотеки должны быть совместимы с LuaSQL. Использование VisualStudio не обязательно. На выходе ожидаются два файла: mysql.dll и lybmysql.dll.

    Закрыт
    4 года назад
  • Необходимо создать плагин для Jira Server/DataCenter на Java, который будет интегрироваться с Git-репозиторием. Плагин должен загружать информацию о коммитах, ветках и pull-request'ах в локальную базу данных Jira, а также отображать эти данные на странице задачи. Реализовать настройки для подключения к Git и автоматическую синхронизацию данных.

    Закрыт
    4 года назад