MSDN说:
当用作修饰符时,new关键字显式隐藏从基类继承的成员.隐藏继承的成员时,该成员的派生版本将替换基类版本.虽然您可以在不使用new修饰符的情况下隐藏成员,但结果是警告.如果使用new来显式隐藏成员,则会抑制此警告并记录派生版本旨在替代的事实.
例:
class Base
{
int value;
virtual bool Foo()
{
value++;
}
}
class Derived : Base
{
int value;
override bool Foo()
{
value++;
}
}
Run Code Online (Sandbox Code Playgroud)
我是否必须new向Derived.value声明添加修饰符?有什么变化?