下面提到的场景将很好地清除情况。我愿意调用 xDerived1 类的虚方法。虽然我可以调用 xBase 类方法和 xDerived2 类方法。
((xDerived1)xDer2).myMethod(); //覆盖 void myMethod
请帮帮我。
static void Main(string[] args)
{
xDerived2 xDer2 = new xDerived2();
xDer2.myMethod();
((xBase)xDer2).myMethod();
((xDerived1)xDer2).myMethod();
}
public class xBase
{
public virtual void myMethod()
{
Console.WriteLine("virtual void myMethod");
}
}
public class xDerived1 :xBase
{
public new virtual void myMethod()
{
Console.WriteLine("new virtual void myMethod");
}
}
public class xDerived2 : xDerived1
{
public override void myMethod()
{
Console.WriteLine("override void myMethod");
}
}