【发布时间】:2021-03-26 21:04:35
【问题描述】:
在此示例中,它通过虚拟覆盖关键字使用多态
abstract class A
{
public virtual string Print() { return "A"; }
}
class B : A
{
public override string Print() { return "B"; }
}
class C : B
{
public virtual new string Print() { return "C"; }
}
class D : C
{
public override string Print() { return "D"; }
}
class Program
{
static void Main(string[] args)
{
A a = new D();
Console.WriteLine(a.Print());
}
}
控制台打印 B。为什么是 B,而不是 D?谢谢解答
【问题讨论】:
-
Console.WriteLine((a as D).Print()) -
谁认为这是一个好问题,认为它是典型的 quiz question 转发,没有任何研究尝试。
标签: c# polymorphism