我期望输出C
在这个程序中。但实际结果是A
。
请解释为什么程序打印A
。C#中的多态性。解释输出
class A
{
public virtual void say()
{
Console.WriteLine ("A");
}
}
class B : A
{
public new virtual void say()
{
Console.WriteLine ("B");
}
}
class C : B
{
public override void say()
{
Console.WriteLine ("C");
}
}
class MainClass
{
public static void Main (string[] args)
{
A a = new C();
a.say();
}
}