Расширяемые типы
Основная цель расширяемых типов — обеспечить повторное использование существующих программных элементов (без необходимости перекомпиляции и перепроверки). Они позволяют объявить новый тип, который уточняет существующий родительский тип наследованием, изменением или добавлением как существующих компонентов, так и операций родительского типа. Иначе говоря, идея расширяемого типа — это развитие идеи производного типа. В качестве расширяемых типов используются теговые типы (разновидность комбинированного типа).
Рассмотрим построение иерархии геометрических объектов. На вершине иерархии точка, имеющая два свойства (координаты X и Y):
type Точка Is tagged
record
Х_КоорД : Float;
Y_Koopfl : Float;
end record;
Другие типы объектов можно произвести (прямо или косвенно) от этого типа.
Например, можно ввести новый тип, наследник точки:
type Окружность is new Точка with -- новый теговый тип;
record
Радиус : Float;
end record;
Данный тип имеет три свойства: два свойства (координаты X и Y) унаследованы от типа Точка, а третье свойство (Радиус) нами добавлено. Дочерний тип Окружность наследует все операции родительского типа Точка, причем некоторые операции могут быть переопределены. Кроме того, для дочернего типа могут быть введены новые операции.
Дата добавления: 2015-03-07; просмотров: 572;