今日コードレビューをしていて、ある開発者によって書かれた古いコードに出くわしました。それはこのようなものになります
public abstract class BaseControl
{
internal abstract void DoSomething();
}
同じアセンブリ内に派生クラスがある場合、それは機能します
public class DerivedControl : BaseControl
{
internal override void DoSomething()
{
}
}
ただし、別のアセンブリで基本クラスを派生させると、コンパイル時にエラーが発生します
DerivedControl does not implement inherited abstract member 'BaseControl.DoSomething()
それは私に考えさせました。メソッドを内部抽象として宣言するのはなぜですか?