class RECTANGLE inherit
POLYGON
redefine perimeter end
feature
...
end
Это позволяет включить в предложение feature класса
Класс
indexing
description: 'Прямоугольники, - специальный случай многоугольников'
class RECTANGLE inherit
POLYGON
redefine perimeter end
creation
make
feature -- Инициализация
make (center: POINT; s1, s2, angle: REAL) is
-- Установить центр прямоугольника в center, длины сторон
-- s1 и s2 и ориентацию angle.
do ... end
feature -- Access
side1, side2: REAL
-- Длины двух сторон
diagonal: REAL
-- Длина диагонали
perimeter: REAL is
-- Сумма длин сторон
-- (Переопределение версии из POLYGON)
do
Result := 2 S (side1 + side2)
end
invariant
four_sides: count = 4
first_side: (vertices.i_th (1)).distance (vertices.i_th (2)) = side1
second_side: (vertices.i_th (2)).distance (vertices.i_th (3)) = side2
third_side: (vertices.i_th (3)).distance (vertices.i_th (4)) = side1
fourth_side: (vertices.i_th (4)).distance (vertices.i_th (1)) = side2
end
| Для списка |
Так как
Этот процесс транзитивен: всякий класс, будучи наследником
Основные соглашения и терминология
Кроме терминов 'наследник' и 'родитель' будут полезны следующие термины:
Терминология наследования
Потомок класса
Собственный потомок класса
Предок
В литературе также встречаются термины 'подкласс' и 'суперкласс', но мы не будем их использовать из-за неоднозначности.
Имеется также терминология для компонентов класса: компонент либо является наследуемым (перешедшим от некоторого собственного предка), либо непосредственным (введенным в данном классе).
При графическом представлении структур ОО-ПО, в котором классы изображаются эллипсами, связи по отношению наследования показываются в виде одинарных стрелок. Тем самым они отличаются от связей по отношению 'быть клиентом', которые представляются двойными стрелками.
Рис. 14.1. Связь по наследованию
Переопределяемый компонент отмечается
Стрелка указывает вверх от наследника к родителю. Это соглашение легко запомнить - оно представляет отношение 'наследовать от'. В литературе встречается и обратное направление таких стрелок. Хотя обычно выбор графического представления является делом вкуса, в данном случае, одно из них явно лучше другого, поскольку одно наводит на мысль о правильном отношении, а другое может
