Замещенные
методы
Замещение методов предполагает
передачу и изменение методов от компонента (класса) предка компоненту (классу)
наследнику. Как мы уже отметили, только виртуальные или динамические методы
могут быть замещенными. Рассмотрим пример:
type
TComponentChild = class (TComponentParent)
procedure MyProcVirtual; override;
procedure MyProcDynamic; override;
end;
Применение служебного слова
override
после названия метода позволяет заместить оригинал метода
компонента предка методом компонента наследника. При этом замещение происходит
непосредственно в таблице виртуальных методов (или таблице динамических методов).
При использовании служебных слов virtual
или dynamic
вместо override
произойдет создание нового метода вместо замещения
старого.
Замещение методов не работает
со статическими методами — при замещении статического метода новым произойдет
простая замена метода родителя в потомке.