新的关键字用于隐藏相同的基类实现.但我不确定为什么以下代码将输出生成为Baseclass
class Baseclass
{
public void fun()
{
Console.Write("Base class" + " ");
}
}
class Derived1: Baseclass
{
new void fun()
{
Console.Write("Derived1 class" + " ");
}
}
class Derived2: Derived1
{
new void fun()
{
Console.Write("Derived2 class" + " ");
}
}
class Program
{
public static void Main(string[ ] args)
{
Derived2 d = new Derived2();
d.fun();
}
}
Run Code Online (Sandbox Code Playgroud)
我们在derived2中隐藏了fun的实现但是仍然调用Base类为什么呢?我错过了什么吗?