2009-07-07 6 views
0

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

+0

пример того, о чем вы просите, сделает вопрос более ясным – 2009-07-07 08:38:32

ответ

0

Я предполагаю, что вы имеете в виду C#.

В основном, вы используете модификатор new, когда метод подкласса не имеет никакого отношения к методу суперкласса. Они разделяют имя, но не существует общего полиморфного поведения. Когда вы полиморфно переопределяете имя, которое называется переопределением.

0

Вместо использования нового оператора я бы рекомендовал выбрать другое имя для метода.