Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> Полиморфизм >> Перекрытие виртуальных и динамических методов
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Перекрытие виртуальных и динамических методов


Для перекрытия и виртуальных, и динамических методов служит новая директива override, с помощью которой (и только с ней!) можно переопределять оба этих типа методов:

type
══TFirstClass = class
════FMyField1 : Integer;
════FMyField2 : Longint;
════procedure StatMethod;
════procedure VirtMethod1; virtual;
════procedure VirtMethod2; virtual;
════procedure DynaMethod1; dynamic;
════procedure DynaMethod2; dynamic;
══end;
══TSecondClass = class (TMyObject)
════procedure StatMethod;
════procedure VirtMethodI; override;
════procedure DynaMethodI; override;
══end;
══var
════Obj1: TFirstClass;
════Obj2: TSecondClass;

Первый из методов в примере создается заново, остальные два ? перекрываются. Попытка применить override к статическому методу вызовет ошибку компиляции. Нужно быть внимательным: попытка перекрытия с директивой не override, a virtual или dynamic, приведет на самом деле к созданию нового одноименного метода.

Более углубленное рассмотрение таблиц вы найдете в разделе "Информация о типе времени выполнения (RTTI). Указатели на класс".



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017