<<
>>

Наследование для обобщения

Идея наследования для обобщения диаметрально противоположна наследованию для специализации. В этой форме подкласс модифицирует родительский класс для создания более общей сущности. Иными словами, вместо роли «подтипа» подкласс

458 Глава 16.
Объектно-ориентированное и аспектно-ориентированное программирование

претендует на роль «надтипа». Обобщение обычно применяется, если иерархия классов создается на основе существующих классов, которые нецелесообразно или просто нельзя изменять.

Будем считать, что имеется родительский класс ДиалоговоеОкно. Программистов вполне устраивает набор его методов, но появилась необходимость изменять цвет букв и цвет фона. Для этого надо добавить два атрибута цвет_пера и цвет_фона и переопределить родительский метод отобразить(), обеспечив в нем возможность работы с атрибутами цвета. В результате такой доработки появляется подкласс ЦветноеДиалоговоеОкно. Присвоить ему сертификат подтипа, увы, нельзя. Хотя, как мы увидим в дальнейшем, можно организовать такое переопределение метода, когда «невозможное станет возможным».

Отметим одну особенность: по большому счету, поведение подкласса, обеспечиваемое набором методов, сохранилось на уровне родительского, изменился лишь набор используемых атрибутов. Это типичная особенность наследования для обобщения.

Как правило, обобщений стараются избегать (если есть такая возможность). В нашем примере для этого достаточно «инвертировать ситуацию»: слегка изменить иерархию и содержание классов в библиотеке, подняв «цветовое решение» наверх.

<< | >>

Еще по теме Наследование для обобщения:

  1. § 40 Наследование в боковой линии. – В каких случаях женщина пользуется правом представления. – Наследование в родовом имении сообразно происхождению имения. – Наследование в благоприобретенном имении. – Предпочтение полнородных неполнородным (ст. 1133–1140).
  2. § 43 Особые порядки наследства. – Наследование и раздел у крестьян по обычаю. – Закон наследования в прибалтийских губерниях.
  3. ОБОБЩЕНИЕ
  4. ОБОБЩЕНИЕ ТЕОРЕТИЧЕСКОЕ
  5. ОБОБЩЕНИЕ ЭМПИРИЧЕСКОЕ
  6. § 38 Когда открывается наследство по русскому закону. – Ограничения наследственного права. – Имущество, составляющее предмет наследования. – Отношение наследования по закону к завещанию. – Кто может быть наследником?
  7. Перефразирование и обобщение.
  8. Перефразирование и обобщение.
  9. Обобщение
  10. Отражение содержания: перефразирование и обобщение
  11. ГЛАВА 19 ОБОБЩЕНИЕ
  12. Метод обобщения независимых характеристик.
  13. § 35 Поводы к открытию наследства. – Имущества, составляющие наследство. – Способные, неспособные и недостойные к наследованию. – Призвание к наследованию и приобретение наследства. – Договоры о наследстве и предварительный отказ от наследства. – Прямой и непрямой наследник. – Праздное и выморочное наследство.
  14. Обобщенный психологический портрет личности несовершеннолетнего преступника.
  15. ГЛАВА 18 ОБОБЩЕНИЕ МЕТОДА ГИПСОСОЗНАНИЯ И УКАЗАНИЯ ПО ЕГО ПРИМЕНЕНИЮ
  16. § 32 Общие понятия о наследстве и о наследственном преемстве. – Отношение завещания к законному наследованию. – Римское господство завещательного начала и отрицание его в германском праве. – Историческое развитие наследственного порядка в римском праве. – Допущение к наследованию кровных родственников.