【发布时间】:2021-03-08 13:23:33
【问题描述】:
我有以下代码:
class Animal
{
public virtual void Invoke()
{
Console.WriteLine("Animal");
}
}
class Dog : Animal
{
public override void Invoke()
{
Console.WriteLine("Dog");
}
}
class Dobberman : Dog
{
public new void Invoke()
{
Console.WriteLine("Dobberman");
}
}
class Program
{
static void Main(string[] args)
{
Animal dog = new Dobberman();
dog.Invoke();
Dobberman dog2 = new Dobberman();
dog2.Invoke();
}
}
为什么它会在第一个输出中打印“Dog”?为什么第二个是“杜伯曼”?幕后发生了什么?
【问题讨论】:
标签: c# .net inheritance polymorphism