我从未真正对这个问题做过准备:但是在重写方法中有条件地调用base.SomeMethod()会是一种可怕的犯罪吗?
示例如下:
protected override void SomeMethod()
{
if( condition > 0 )
base.SuperMethod();
}
Run Code Online (Sandbox Code Playgroud)
我知道这可能被认为是不好的做法但我到目前为止从未阅读过这样的说法.
class HardHearingPerson : Person
{
override void Listen()
{
if (volume.Acceptable())
base.Listen();
}
}
Run Code Online (Sandbox Code Playgroud)
猜测它取决于上下文,但我相信它可以合理使用.