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