我期望輸出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();
}
}