如何使基类调用它的虚函数

本文关键字:函数 调用 何使 基类 | 更新日期: 2023-09-27 18:13:00

例如,在下面的程序中,我希望A中的entrypoint()能够调用A中的doThis,但它调用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");
    }
}

编辑:我如何调用'基本实现'重写虚方法的?是类似的,但我是从基类调用基实现,而不是main。

如何从基类中的另一个方法调用虚方法,即使当前实例是派生类的?

如何使基类调用它的虚函数

正确的方法是不调用虚方法,如果您需要它不被覆盖。我建议创建一个私有方法来做你想做的事情。