Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi: объясните своими словами virtual, abstract и override

Снеговик Оракул (50021), закрыт 16 лет назад
Лучший ответ
Gennady Гений (60814) 16 лет назад
Доброго времени суток.

Не вдаваясь в тонкости, можно сказать, что методы классов могут быть статическими и виртуальными. Статический метод не переопределяется. Поэтому, если вы породили потомка от некоторого класса, то он унаследует статический метод родителя и при его вызове будет исполнен код, реализованный в родительском методе. Для того, чтобы в потомке можно было изменить поведение метода, его объявляют со служебным словом virtual; При этом название метода и список параметров должны в точности соответствовать названию и списку параметров родителя.

При переопределении родительcких методов используется директива override;

Что касается абстрактных методов, то в базовом типе объекта абстрактный метод не имеет определения тела (или тело содержит оператор Abstruct для перехвата неверных вызовов) . Абстрактные методы должны быть определены потомками до того, как могут быть использованы. Абстрактные методы - это всегда виртуальные методы. Пример такого метода TStream.Read.

Удачи!
Остальные ответы
Николай Оракул (85016) 16 лет назад
Сначала ты, а мы поправим, если ошибешься.
Похожие вопросы