Мельница данных (15.10.2024) | |||
Наследование и переопределение членов класса и параметров подпрограмм | |||
Все члены родительского класса наследуются дочерним классом следующим образом: ПоляВсе поля родительского класса доступны в дочернем классе. При создании в дочернем классе поля с тем же именем, что и в родительском классе, класс-наследник теряет возможность напрямую манипулировать полем родительского класса и получает поле с тем же именем. Можно сказать, что новое поле "закрывает" старое, но не "замещает" его. МетодыВсе методы родительского класса наследуются дочерним классом. При создании в дочернем классе метода с тем же именем, что и в родительском классе, метод переопределяется, т.е. вместо старого метода будет существовать новый. Единственный способом обратиться к старому (унаследованному) методу является использование в теле метода оператора унаследованного вызова inherited (см. раздел 5.3.14.). Переопределенный метод имеет все параметры родительского метода и может расширять список параметров, а также переопределять унаследованные параметры (создавая параметры с тем же именем и изменяя любой другой атрибут параметра по своему усмотрению). Скрипты форм задания параметров не наследуются и должны быть полностью заданы в переопределенном методе. Изображения-иконки методов наследуются и могут не переопределяться явно. СвойстваВсе свойства родительского класса доступны в дочернем классе. При создании в дочернем классе свойства с тем же именем, что и в родительском классе, класс-наследник теряет возможность напрямую манипулировать свойством родительского класса и получает свойство с тем же именем. Можно сказать, что новое свойство "закрывает" старое, но не "замещает" его. На практике часто бывает необходимо в унаследованном методе (особенно в конструкторе) скрыть часть параметров от пользователя, либо сузить область выбора значений для каких либо параметров. В этом случае необходимо переопределить параметры в унаследованном методе с новыми значениями свойства Scope ("Область видимости") или Domain ("Домен"). Это нормальная рекомендуемая практика. Необходимо понимать, что скрыв с формы элемент управления, соответствующий параметру, значение которого обязательно, необходимо предусмотреть, чтобы этот параметр получил значение до вызова унаследованного метода, либо из скрипта формы задания параметров, либо в теле самого метода.
|