Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

infa_1 / 1.Виртуальные и статические методы

.doc
Скачиваний:
31
Добавлен:
05.06.2015
Размер:
25.09 Кб
Скачать

1.Виртуальные и статические методы.

Вызов статических методов выполняется точно также, как и вызовы обычных процедур и функций. Определение конкретных адресов статических методов и их связывание выполняются во время компиляции. Поэтому такие методы не могут быть переопределены для реализации полиморфизма. Если в классе-потомке объявляется метод с таким же именем, как в родительском классе, то действие метода класса-предка отменяется (подавляется) полностью, поскольку уже на этапе компиляции вместо его адреса будет подставлен адрес одноименного метода класса-потомка. Причем подавляющий метод может иметь отличные от родительского метода число и типы параметров. Единственным преимуществом статических методов является то, что их вызов выполняется быстрее, чем виртуальных.

Синтаксически описание виртуальных методов отличается наличием директивы virtual, которая указывается в конце заголовка методов при объявлении классов. При описании реализации метода эта директива не ставится. В классах-потомках можно переопределить (override) наследуемый родительский виртуальный метод. Для этого, объявляемый метод обязан иметь заголовок, идентичный заголовку наследуемого метода, включая число параметров и их типы. Кроме того, у него на месте директивы virtual должна стоять директива override.