【发布时间】:2015-05-13 07:19:11
【问题描述】:
new 关键字用于隐藏相同的基类实现。但我不知道为什么下面的代码产生输出作为基类
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();
}
}
我们在derived2中隐藏了fun的实现,但仍然调用Base类,为什么会这样?我错过了什么吗?
【问题讨论】:
-
您的方法具有不同的可见性(公共与私有)
标签: c# inheritance