我想知道为什么调用打印“派生类中的double”的方法。在C#规范中没有找到任何线索。
public class A
{
public virtual void Print(int x)
{
Console.WriteLine("int in base");
}
}
public class B : A
{
public override void Print(int x)
{
Console.WriteLine("int in derived");
}
public void Print(double x)
{
Console.WriteLine("double in derived");
}
}
B bb = new B();
bb.Print(2);
public new void Print(int x)
(隐藏基本的Print
方法)。如果您只将其声明为public void Print(int x)
并删除基类,则会发生相同的情况。然后调用int方法。似乎来自继承。 - Michael Schnerring