我有几个类继承自BaseClass,后者具有一个称为GetData的抽象方法。在其中一个中,我希望基本上从其继承,并提供一个称为GetArticles的新方法,该方法从GetData调用。这是代码。

public abstract class BaseClass
{
    internal abstract void GetData();
}

internal class FirstClass : BaseClass
{
    internal override void GetData()
    {
        // calls GetArticles
    }

    protected void GetArticles()
    {
    }
}

internal class SecondClass : FirstClass
{
    protected new void GetArticles()
    {
    }
}


GetClassicles从未在SecondClass中调用。即使我的对象是SecondClass类型,它也会在FirstClass中调用它。我无法在FirstClass Abstract中创建GetArticles,因为我想自己使用FirstClass。

有什么建议么?

最佳答案

在您的GetArticles中将FirstClass声明为虚拟。在第二个类中,删除new并添加override

08-06 16:54