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

По обе стороны океана

По обе стороны океана

Следующий пример позволит нам промоделировать ситуацию дублируемого наследования и изучить возникающие проблемы. Пусть класс DRIVER имеет атрибуты:

age: INTEGER
address: STRING
violation_count: INTEGER -- Число записанных нарушений

и методы:

pass_birthday is do age := age + 1 end
pay_fee is
-- Оплата ежегодной лицензии.
do ... end

Класс наследник, US_DRIVER учитывает налоговое законодательство США, другой, FRENCH_DRIVER, - налоговое законодательство Франции.

Рассмотрим категорию людей, которым в течение года приходится водить машину в обеих странах. Нужного класса у нас еще нет, и простым решением этой проблемы кажется множественное наследование. Опишем класс FRENCH_US_DRIVER как порожденный от US_DRIVER и FRENCH_DRIVER. Налицо дублируемое наследование.


Рис. 15.16.  Типы водителей

Оглавление книги


Генерация: 1.337. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз