Введение в программирование - Учебное пособие (Корочкин А. В.)

4.2 производные типы и производные классы.

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

TYPE        Имя_Производного_типа     IS    NEW

Имя_родительского_типа [Ограничения];

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

Integer   range    1 .. 77; Float;

Vector100(1 .. 16);

type        Wigth     is             new

type        Sum        is             new

type        Vec_16  is             new

Производный тип наследует множество значений родительского типа. Это множество может быть ограничено ( если имеется Ограничение в описании производного типа ) или расширено ( если родительский тип описан как тэговый ).

Производный тип наследует предопределенные операции и примитивные подпрограммы от родительского типа.

Для производных типов в языке введено понятие производных классов. Производный класс для типа Т ( класс типа Т ) - это множество типов, содержащее сам тип Т ( корневой тип класса ) и все типы, производные прямо или косвенно ( непрямо) от типа Т, а также соответствующие универсальные типы и типы широкого класса.

Каждый тип в языке может быть одним из следующих : •   специфическим типом     (specific type ) _•    типом широкого класса ( class-wide type )

36

37

Ада95.Введение в программирование

Глава 4. Типы определяемые пользователем

 

•   универсальным типом    ( universal type ).

Специфический тип определяется при описании типа, описании формального типа или при описании типа в обьявлении обьекта. Тип широкого класса определяется для каждого производного класса, корнем которого является тэговый тип. Универсальный тип определяется для числовых классов ( integer, real, fixed ).

Типы широкого класса и универсальный тип включают все типы в этом классе, специфический тип - только себя самого.

Типы широкого  класса более  подробно  будут   рассмотрены в главе 16.

Ш СОВЕТЫ :

*  Используйте производные типы и подтипы совместно.

*  Используйте  производные  типы  вместо  расширяемых,  если   не добавляете новые компоненты к типу.