设置为抽象的抽象函数C#

时间:2018-04-12 18:34:16

标签: c# class override abstract

我可以将抽象函数设置为抽象吗?我可以这样做:

public abstract class A
{
   protected abstract void WhateverFunction();
}

public abstract class B:A
{
   protected abstract void WhateverFunction();
}

public abstract class C:B
{
   protected override void WhateverFunction()
   {
      //code here
   }
}

如果没有,我该怎么做来模拟这种行为?

1 个答案:

答案 0 :(得分:3)

是的,但您需要将override修饰符添加到B类声明的函数中。因此,在这种情况下,WhateverFunction是抽象的,同时覆盖A上的函数:

public abstract class A
{
    protected abstract void WhateverFunction();
}

public abstract class B : A 
{
    protected abstract override void WhateverFunction(); // HERE
}

public abstract class C : B
{
    protected override void WhateverFunction()
    {
        //code here
    }
}

在这种情况下,您也可以在B类上省略WhateverFunction以获得相同的结果。