【发布时间】:2017-12-10 05:21:34
【问题描述】:
假设我们定义了两个类(A 和 B):
class A
{
public new virtual string ToString()
{
return "I'm class A object.";
}
}
class B : A
{
public override string ToString()
{
return "I'm class B object.";
}
}
如果我们写:
A a = new B();
Console.WriteLine(a);
“B”(namespace.B)将显示在控制台中。
也就是说,将调用 A 类 (System.Object.ToString()) 的隐式祖先的 ToString() 方法。
为什么调用的是 System.Object 类的方法,而不是 A 类或 B 类?
【问题讨论】:
标签: polymorphism overriding method-hiding