Это правило отражает одну из важных характеристик наследования: сказать, что
В нашем примере второе предложение (
Наследование и конструкторы
Ранее не показанная процедура создания (конструктор) для класса
make_polygon (vl: LINKED_LIST [POINT]) is
-- Создание по вершинам из vl.
require
vl.count >= 3
do
...Инициализация представления многоугольника по элементам из vl ...
ensure
-- vertices и vl состоят из одинаковых элементов (это можно выразить
формально)
end
Эта процедура берет список точек, содержащий по крайней мере три элемента, и использует его для создания многоугольника.
Ей дано собственное имя |
Приведенная выше процедура создания класса
Общая процедура создания для многоугольников не удобна прямоугольникам, так как приемлемы только списки из четырех элементов, удовлетворяющих инварианту класса
Например, если у наследника имеются новые атрибуты, то процедуре создания нужно будет их инициализировать, для чего потребуются дополнительные аргументы. Отсюда общее правило:
Правило наследования конструктора
При наследовании свойство процедуры быть конструктором не сохраняется.
Наследуемая процедура создания все еще доступна в наследнике, как и любой другой компонент родителя, но она не сохраняет статус конструктора. Этим статусом обладают только процедуры, перечисленные в предложении creation наследника.
В некоторых случаях родительский конструктор подходит и для наследника. Тогда его просто нужно указать в предложении creation:
class B inherit
A
creation
make
feature
...
где процедура
Пример иерархии
В конце обсуждения полезно рассмотреть пример
Рис. 14.2. Иерархия типов фигур
Фигуры разбиты на замкнутые и незамкнутые. Примером замкнутой фигуры кроме многоугольника является также эллипс, а частным случаем эллипса является круг.
Рядом с классами указаны их разные компоненты. Символ "
Ранее для простоты
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии