MSDN говорит:
При использовании в качестве модификатора ключевое слово new явно скрывает член, унаследованный от базового класса. Когда вы скрываете унаследованный член, производная версия члена заменяет версию базового класса. Хотя вы можете скрыть элементы без использования модификатора new, результатом будет предупреждение. Если вы используете new для явного скрытия члена, это предупреждение подавляется и документируется тот факт, что производная версия предназначена для замены.
Пример:
class Base
{
int value;
virtual bool Foo()
{
value++;
}
}
class Derived : Base
{
int value;
override bool Foo()
{
value++;
}
}
Нужно ли добавлять модификатор new
в объявление Derived.value? Какие изменения?