Вопросы к модулю №2

Темы

I Наследование
  1. Синтаксис описания класса-наследника ("extends"), структура объекта такого класса (поля: "свои" + унаследованные; методы: свои, унаследованные и переопределенные (override)).
  2. Порядок вызова конструкторов при создании объекта класса-наследника. Выбор нужного конструктора с помощью ключевого слова super.
  3. Переопределение методов в подклассе (override), обращение к методам базового класса (второй вариант использования ключевого слова super).
  4. Уровни доступа: private, protected, public, "пакетный" доступ.
  5. Запрещение наследования с помощью ключевого слова final.
II Полиморфизм
  1. Пример кода, демонстрирующего полиморфное поведение классов. "Переменная суперкласса может ссылаться на объект подкласса" - (c) Шилдт.
  2. Принцип подстановки Барбары Лисков.
III Интерфейсы
  1. Синтаксис определения интерфейса. Отличие интерфейсов от классов.
  2. Реализация ("implements") интерфейсов в классах. Использование интерфейсных ссылок для полиморфной работы с объектами разных классов.
  3. Обязательность определения в классе всех методов всех реализуемых им интерфейсов. Абстрактные классы (получаются, если в классе определить не все методы из интерфейса).
  4. Реализация нескольких интерфейсов в одном классе. Реализация одного интерфейса в нескольких классах.
  5. Наследование интерфейсов (interface extends interface).
IV Вопросы проектирования
  1. Наследование и диаграммы множеств: все "автобусы" - это подмножество "автомобилей" или: все "автомобили" - подмножество "автобусов"?
  2. Способы расширения класса: добавление полей и методов, переопределение методов.
  3. Почему принято противопоставлять "интерфейс класса" (и что это?) - и "реализацию класса"?
  4. "Наследование интерфейса" и "наследование реализации".
  5. Как "удалить" нежелательные методы при "наследовании" реализации: композиция + делегирование.
  6. Изображение наследования и композиции на диаграммах классов UML.

Литература

  1. Шилдт.Главы 8-9.
  2. Хорстманн. Главы 5-6.


Comments