Ватсон Карли
Шрифт:
В противоположность этому C# предоставляет специфические приемы для рассмотрения каждого отдельного вопроса. По умолчанию подкласс не должен иметь возможности повторно реализовывать открытый метод, который уже реализован в суперклассе. C# вводит новую концепцию — сокрытие метода, что позволяет программисту переопределить члены суперкласса в классе-наследнике и скрыть реализацию базового класса, C# использует в данном случае модификатор
Это делается присоединением
Выполнение этого примера создает следующий вывод:
Необходимо отметить, что существует различие между сокрытием метода и обыкновенным полиморфизмом. Полиморфизм всегда будет предоставлять для вызова метод класса-наследника.
Примечание. Во время написания этой книги автор обнаружил, что сокрытие метода компилируется без ошибок и предупреждений, даже когда ключевое слово
Чтобы предоставить функциональность переопределения, используются модификаторы
Компиляция и выполнение этого создают следующий вывод.
Как можно видеть, вызывается самый последний переопределенный метод
Чтобы помешать случайному наследованию класса, используется ключевое слово
C# не имеет модификатора
Это не имеет большого смысла без использования атрибута