18c0693f

Кое-что о политике


Что происходит со статусом экспорта при передаче компонента потомку? Наследование и скрытие информации - ортогональные механизмы. Наследование определяет отношение между классом и его потомками, экспорт - между классом и его клиентами. Класс B может свободно экспортировать или скрывать любой из компонентов f, унаследованных им от классаA. При этом доступны все возможные комбинации:

Правило гласит: по умолчанию f сохраняет тот статус экспорта, которым компонент был наделен в A. Однако его можно изменить, добавив предложение export в предложение наследования класса. Например:

class B inherit A export {NONE} f end -- Скрыть f (возможно, экспортируемый в классе A) ...

или

class B inherit A export {ANY} f end -- Экспортировать f (возможно, скрытый в классе A) ...

или

class B inherit A export {X, Y, Z} f end -- Сделать f доступным определенным классам ...