Классика баз данных - статьи



         

Иерархии классов или типов - часть 2


Наследование способствует повторному использованию кода, потому что каждая программа находится на том уровне, на котором ее может совместно использовать наибольшее число объектов.

Имеется по крайней мере четыре типа наследования:

  1. наследование через подстановку (substitution inheritance),
  2. наследование путем включения (inclusion inheritance),
  3. наследование через ограничение (constraint inheritance) и
  4. наследование через специализацию (specialization inheritance).

Говоря про наследование через подстановку, мы имеем в виду, что тип t наследует от типа t', если мы можем выполнить больше операций над объектами типа t, чем над объектом типа t'. Таким образом, вместо объекта t' мы всегда можем подставить объект типа t. Этот тип наследования базируется на поведении, а не на значениях.

Наследование путем включения соответствует понятию классификации. В этом случае утверждается, что тип t является подтипом t', если каждый объект типа t является также объектом типа t'. Этот тип наследования базируется на структуре, а не на операциях. Примером являются тип квадрат с методами получить(размер), установить(размер) и тип раскрашенный квадрат с методами получить(размер), установить(размер) и раскрасить(цвет).

Наследование через ограничение является частным случаем наследования путем включения. Тип t является подтипом типа t', если к нему относятся все объекты типа t', которые удовлетворяют данному ограничению. Примером такого наследования является класс подросток как подкласс класса человек: объекты класса подросток не имеют дополнительных полей или операций по сравнению с объектами класса человек, но они удовлетворяют более специфичным ограничениям (возраст подростков ограничен снизу 13, а сверху 19 годами).

При наследовании через специализацию тип t является подтипом t', если объекты типа t являются объектами типа t', но при этом содержат более специфичную информацию. Примером являются типы люди и служащие, где информация о служащих является той же самой, что и информация о людях, но включает некоторые дополнительные поля.

Существующие системы и прототипы в той или иной мере поддерживают эти четыре типа наследования. Мы, в свою очередь, не хотим навязывать какой-либо конкретный стиль наследования.




Содержание  Назад  Вперед