4. Наследование
• Уточнение: класс-потомок добавляет некоторые существенные
черты к родительскому состоянию, добавляет особое
поведение
• Перекрытие: класс-потомок изменяет некоторые аспекты
поведения класса-родителя, перекрывая методы последнего
• Повторное использование кода: поведение и состояние
можно изменять, не дублируя код
5. Наследование в Java
• Наследование с помощью ключевого слова extends
• Только единичное наследование
• Только public наследование
• По умолчанию – наследование от java.lang.Object
• К классу-родителю можно обратиться с помощью super
• Наследование можно запретить, используя final
7. Перекрытие методов
• Для перекрытия методов достаточно в классе-потомке объявить
метод с той же сигнатурой, что и в классе-родителе
• Перекрытие методов можно запретить, пометив метод
ключевым словом final
• static методы нельзя перекрывать, их можно только скрывать
• Начиная с Java 5, перекрывающие методы рекомендуется
помечать аннотацией @Override
8. Абстрактные классы и методы
• Абстрактные методы не имеют тела
• Абстрактный метод помечается ключевым словом abstract
• Если в классе есть абстрактный метод, то и класс необходимо
пометить ключевым словом abstract
10. Наследование и полиморфизм
Runtime type information (RTTI)
• Upcasting (восходящее преобразование) – интерпретация
ссылки на объект как ссылки на базовый класс)
• Downcasting (нисходящее преобразование)
– instanceof
– ClassCastExeption
11. Интерфейсы в Java
• Интерфейсы содержат только объявления методов и (или)
констант
• Реализация интерфейса – с помощью ключевого слова
implements
• Что будет, если реализовать не все методы интерфейса?
12. Множественное наследование
• Для классов можно использовать только единичное
наследование
• Вместо множественного наследования можно использовать
интерфейсы и агрегацию
• Для интерфейсов разрешено множественное наследование
14. Основы UML
• UML – универсальный язык моделирования, созданный для
прототипирования программного обеспечения и других систем
• Идеология UML – система описывается в терминах
взаимодействия объектов с помощью графических диаграмм
• Диаграммы используются для формализации требований,
выполнения анализа, проектирования решения и описания
процесса развёртывания
15. Use Cases
• На диаграмме вариантов использования (use cases)
изображаются возможные варианты использования системы с
точки зрения пользователя системы (взгляд на систему, как на
«чёрный ящик»)
16. Диаграммы классов
• На диаграмме классов изображаются поля и методы классов, а
также отношения между классами
17. Диаграммы классов
• На диаграмме классов, кроме прочего, изображается
реализация и использование интерфейсов
18. Типы взаимосвязей
• Association (ассоциация)
• Aggregation (агрегация) – часть целого
– Часть может существовать отдельно от целого
• Composition (композиция) – часть целого
– Часть не может существовать отдельно от целого