4.11 Упражнения

Предыдущая  Содержание  Следующая V*D*V

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

Предоставить move() динамическую компоновку трудно, но, возможно, интересно: заблокированные объекты могут решить сохранить свою точку отсчета фиксированной и сдвигать только свою текстовую часть.

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

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

 

Предыдущая  Содержание  Следующая