当父变量类型存储子对象并调用被子类覆盖的方法时会发生什么?
方法的父版本执行还是方法的子版本执行?
public class testa
{
public virtual void display()
{
System.Diagnostics.Debug.WriteLine('a');
}
}
public class testb : testa
{
public override void display()
{
System.Diagnostics.Debug.WriteLine('b');
}
}
然后在某处打电话
testa b = new testb();
b.display();
通过我自己运行这个测试,我发现它说“b”,但我仍然想要一个正式的答案,以完全理解正在发生的事情。