代码:
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" + " ");
}
}
根据“new”修饰符的定义:“new 关键字显式隐藏了从基类继承的成员。”。然后,当我们在派生类中使用 new 修饰符调用该方法时,它应该始终将输出作为“Derived2 类”,但在所有三个条件下我总是得到输出“基类”。
Baseclass d1 = new Derived1();
Baseclass d2 = new Derived2();
Baseclass b = new Baseclass();
d1.Fun();
d2.Fun();
b.Fun();
任何人都可以解决我的疑问吗?