Okay, im Grunde genommen habe ich das folgende Problem: Ich versuche, eine abstrakte Klasse eine andere abstrakte Klasse zu erben, die eine abstrakte Methode hat, aber ich möchte die abstrakte Methode in keiner von ihnen wegen einer dritten Klasse implementieren erbt von beiden:
%Vor%Ich versuche, binäre Befehle von unären Befehlen zu trennen, möchte aber die execute-Methode in beiden nicht implementieren. Ich dachte darüber nach, Binary die abstrakte Methode zu überschreiben (da es muss) und dann einfach eine nicht implementierte Ausnahme-Sache zu werfen. Wenn ich es überschreibe, muss ich einen Körper deklarieren, aber wenn ich es abstrakt mache, "verstecke" ich die vererbte Methode.
Irgendwelche Gedanken?
Sie müssen execute()
in der Binary-Klasse nicht deklarieren, da sie bereits von Command geerbt wurde. Abstrakte Methoden müssen nicht von anderen abstrakten Klassen implementiert werden - die Anforderung wird an die konkreten Klassen übergeben.
Lassen Sie die Deklaration von execute()
in Binary
einfach weg. Da Binary
ebenfalls abstrakt ist, müssen keine abstrakten Methoden seiner Vorfahren implementieren
Tags und Links c# inheritance abstract-class abstract-methods multi-level