我认为它会调用派生类函数,因为类会重视它自己的函数,但它调用基类函数请纠正我...
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 test
{
static void Main(string[] args)
{
Derived2 d = new Derived2();
d.fun();
}
}
答案 0 :(得分:1)
调用基类方法是因为只有基类方法可访问。
为什么其他方法无法访问?我们来看看Derived2
中的方法:
new void fun()
{
Console.Write("Derived2 class" + " ");
}
它的访问修饰符是什么?无,因此默认为private
。这意味着您无法从test
class!
要使其正常工作,只需添加public
修饰符:
new public void fun()
{
Console.Write("Derived2 class" + " ");
}