Основы объектно-ориентированного программирования

         

Устройства и принтеры


Вот простой пример переопределения типа. Рассмотрим понятие устройства, включив предположение о том, что для любого устройства есть альтернатива, так что устройство можно заменить, если оно по каким-либо причинам недоступно:

class DEVICE feature alternate: DEVICE set_alternate (a: DEVICE) is -- Пусть a - альтернативное устройство. do alternate := a end ... Прочие компоненты ... end

Принтер является устройством, так что использование наследования оправдано. Но альтернативой принтера может быть только принтер, но не дисковод для компакт-дисков или сетевая карта, - поэтому мы должны переопределить тип:


Рис. 16.6.  Устройства и принтеры

class PRINTER inherit DEVICE redefine alternate, set_alternate feature alternate: PRINTER set_alternate (a: PRINTER) is -- Пусть a - альтернативное устройство. ... Тело как у класса DEVICE ... ... Прочие компоненты ... end

В этом и проявляется специализирующая природа наследования.



Содержание раздела