例如,在以下程序中,我希望entrypoint()
中的A
能够在doThis
中呼叫A
,但它会在B中调用doThis
这是实例类型。我怎样才能实现我的目标?
void Main()
{
A a = new B();
a.entrypoint();
}
public class A
{
public void entrypoint()
{
this.doThis(); //doesn't call A::doThis()
}
public virtual void doThis()
{
Console.WriteLine ("From A");
}
}
public class B : A
{
public override void doThis()
{
Console.WriteLine ("From B");
}
}
编辑:How can I call the 'base implementation' of an overridden virtual method?类似,但我从基类调用基本实现而不是主。
答案 0 :(得分:4)
正确的方法可能是,如果你不需要覆盖它,就不要调用虚方法。我建议制作一个私人方法来做你想做的事。