我可以将抽象函数设置为抽象吗?我可以这样做:
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
}
}
如果没有,我该怎么做来模拟这种行为?
答案 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
以获得相同的结果。