在C#中,如果派生方法是覆盖,则不是,但如果标记为,则为yes new.但是在使用这个结构时你必须要小心,因为在大多数情况下,你的对象的消费者并不会真正想到它;
static class Program
{
static void Main()
{
Base baseObject = new Derived();
Derived derivedObject = new Derived();
Console.Write(derivedObject.Test());
Console.Write(baseObject.Test());
Console.Write(((Base)derivedObject).Test());
}
}
class Base
{
public virtual int Test()
{
return 1;
}
}
class Derived : Base
{
public new int Test()
{
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)