gibt es die folgenden Klassen:
%Vor%Wie kann ich vermeiden, dass ich die "System.out.println (" Methode namens ") schreiben muss" zwei mal?
Danke für die Antworten
KaliberR.50
Bringen Sie die allgemeine Funktionalität in die Oberklasse und definieren Sie eine weitere abstrakte Methode, für die die Unterklassen ihre eigene Implementierung definieren.
%Vor%Auf diese Weise können Sie vermeiden, dass die allgemeine Methode der Oberklasse doppelt aufgerufen wird.
Sie können die Implementierung run () in die abstrakte Klasse einfügen:
%Vor%In der bearbeiteten Version Ihrer Frage können Sie einfach eine vererbte Run-Implementierung verwenden
%Vor% Wenn ein Teil der Implementierung von run()
sowohl für Sub1 als auch für Sub2 gilt, schlage ich vor, dass Sie einfach Vererbung und Überschreibung in den Unterklassen verwenden. Hier ist das Codebeispiel:
Der Trick dabei ist, dass die Klasse Super
bei der Implementierung von Methoden abstract
definiert werden kann. Wenn Sie Unterklassen haben, die den gemeinsamen Code nicht benötigen, können Sie run()
ohne den super.run()
-Code überschreiben und alles ändern.
Sie können den allgemeinen Code in die Super-Klassenmethode einfügen und ihn von Unterklassenmethoden aufrufen.
%Vor%Wenn Sie möchten, dass alle Unterklassen das gleiche Verhalten haben, dann wäre die korrekte Methode, die Methode nur in der Oberklasse zu codieren, damit die Unterklassen sie erben können. Aber das würde die Notwendigkeit beseitigen, dass Ihre Superklasse in diesem Fall abstrakt ist, da sie ihre einzige Methode implementiert.
Tags und Links java class inheritance methods abstract