Замещенные методы

Замещение методов предполагает передачу и изменение методов от компонента (класса) предка компоненту (классу) наследнику. Как мы уже отметили, только виртуальные или динамические методы могут быть замещенными. Рассмотрим пример:

type 
   TComponentChild = class (TComponentParent) 
        procedure MyProcVirtual; override; 
        procedure MyProcDynamic; override; 
end;

Применение служебного слова override после названия метода позволяет заместить оригинал метода компонента предка методом компонента наследника. При этом замещение происходит непосредственно в таблице виртуальных методов (или таблице динамических методов). При использовании служебных слов virtual или dynamic вместо override произойдет создание нового метода вместо замещения старого.

Замещение методов не работает со статическими методами — при замещении статического метода новым произойдет простая замена метода родителя в потомке.

Hosted by uCoz