Я знаю, что когда у нас есть виртуальная функция в нашем собственном базовом классе, то, переопределяя ее в производном классе и рассматривая кастинг при объявлении переменной, мы имеем разные результаты при сравнении с использованием нового модификатора в производном классе. но почему? Есть ли какая-то логическая причина для этого, или мы должны научиться этому без всякой причины?Основываясь на каких логических причинах, виртуальные и новые модификаторы имеют разные результаты в вопросах наследования и полиморфизма?
0
A
ответ
0
Я предполагаю, что вы имеете в виду C#.
В основном, вы используете модификатор new
, когда метод подкласса не имеет никакого отношения к методу суперкласса. Они разделяют имя, но не существует общего полиморфного поведения. Когда вы полиморфно переопределяете имя, которое называется переопределением.
0
Вместо использования нового оператора я бы рекомендовал выбрать другое имя для метода.
пример того, о чем вы просите, сделает вопрос более ясным – 2009-07-07 08:38:32