さて、基本的に次の問題があります。抽象クラスに抽象メソッドを持つ別の抽象クラスを継承させようとしていますが、3番目のクラスが両方から継承するため、どちらにも抽象メソッドを実装したくありませんそのうちの:
public abstract class Command
{
public abstract object execute();
}
public abstract class Binary : Command
{
public abstract object execute(); //the issue is here
}
public class Multiply : Binary
{
public override object execute()
{
//do stuff
}
}
バイナリコマンドを単項コマンドから分離しようとしていますが、どちらにも実行メソッドを実装したくない/実装できません。Binary で抽象メソッドをオーバーライドし (そうする必要があるため)、実装されていない例外をスローすることを考えました。オーバーライドする場合は本体を宣言する必要がありますが、抽象化する場合は継承されたメソッドを「非表示」にします。
何かご意見は?