Виртуальные
методы
Виртуальные методы, в отличие
от статических, поддерживают перегрузку, поэтому вызов таких методов для среды
Kylix намного сложнее (заранее неизвестен адрес конкретного вызываемого метода).
Для того чтобы решить эту проблему, Kylix строит таблицу виртуальных методов
(Virtual Method Table), благодаря которой компилятор может определить адрес
метода во время выполнения программы. Такая таблица содержит виртуальные методы
не только самого класса или компонента, но и его предков. Естественно, хранение
такой таблицы увеличивает расходы памяти, но вызов виртуальных методов выполняется
быстрее, чем вызов динамических методов.
Описание виртуального метода
выглядит следующим образом:
type TComponent = class
procedure MyProcedure; virtual; end;
В данном случае метод MyProcedure
— виртуальный.