homeTaskForAndriond Course
задачи
2018.10.15 Домашка
• Создайте абстрактный класс Animal, от которого унаследуйте Cat и Dog
• От Cat и Dog унаследуйте по несколько пород кошек и собак (гугл в
помощь!). Пусть они печатаются в консоль в формате «вид порода имя»
(«Собака, овчарка, Рекс»). Попробуйте использовать минимум
дублируемого кода и максимум абстракции.
• У Animal должен быть метод talk, и все должны мяукать и гавкать.
• Реализуйте equals() и hashCode() корректно: если двух псов зовут
Бобик, но они бассет и овчарка, то это разные собаки; тем
более — если это собака и кот. Не используйте шаблоны IDE.
• Добавьте Animal final-методы sleep(), awake() и die()
. Если животное спит
или умерло, то вызов talk() ни к чему не приводит.
2018.10.22 Домашнее задание
- В ранее созданном классе Animal использовать
enum { SLEEPING, AWAKEN, DEAD }
вместо пары флагов boolean, оставить ту же функциональность • Многие уже так и сделали, те сразу следуют к пункту 2 - Завести ещё несколько видов животных: корова, волк, рысь, медведь и т.п., обязательно несколько диких.
- Добавить runtime-аннотацию Domesticated. Пометить ей классы одомашненных животных.
- Проверить одомашненность у случайно взятого животного через аннотацию
- Бонус, отдельным зачётом: вывести дни недели, оставшиеся от текущего дня недели до её конца. Например, в пятницу выводим: суббота, воскресенье. А в воскресенье: «последний день».