Переопределение и виртуальные методы
Таблица 16.2. Переопределение метода в языках С++ и С#
Природа наследования |
455 |
Во многих объектно-ориентированных языках (Smalltalk, Java) подобное поведение реализуется естественным образом, как только класс-потомок переопределит метод класса-родителя, сохранив сигнатуру типов в заголовке. С другой стороны, в некоторых языках потребуется, чтобы программист явно записал, что такая подстановка разрешается. Для индикации этой возможности во многих языках применяется ключевое слово virtual. В частности, в родительском классе C++ слово размещается в родительском классе (отмечая, что переопределение может произойти, но не указывая, что оно обязательно произойдет). В языке C# пометки делаются как в родительском, так и в дочернем классе, причем, как показано в табл. 16.2, используются разные слова. |