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