Sagen wir, ich habe zwei Klassen Base
und Derived
:
Jetzt mit diesem:
%Vor%Wird gedruckt:
%Vor% Meine Frage ist: Ist es möglich, d.methodA()
auf Base.methodB()
zu setzen? Ich möchte, dass der Code ausgedruckt wird:
Für diejenigen, die sich in C ++ auskennen, könnte dies mit etwas wie Base::methodB()
in der Klasse Base
geschehen. Gibt es eine Entsprechung in Java?
Ich bin mir fast sicher, dass das schon einmal gefragt wurde, aber ich konnte nichts finden, es tut mir leid, wenn es ein Duplikat ist.
Wenn eine Methode in der Basisklasse überschrieben werden kann und die abgeleitete Klasse eine solche bereitgestellt hat, gibt es keine Möglichkeit, einen Aufruf der Methode der Basisklasse zu erzwingen.
Wenn die Basisklasse die Funktionalität in der Basisklasse aufrufen muss, kann sie sie in eine separate Methode einfügen und sie als final
deklarieren. Dann könnte es eine Entscheidung zwischen seiner eigenen Implementierung und der abgeleiteten Implementierung treffen:
Kann es nicht tun. In C ++ - sprich, sind alle Java-Methoden "virtuell". Tun Sie das stattdessen:
%Vor%Ich denke, Sie können erreichen, was Sie wollen, indem Sie die Funktionalität in der Elternklasse in ihre eigene Methode wie folgt aufteilen. Nicht die Richtung, in die du geschaut hast, sondern was du willst:
%Vor%Tags und Links java inheritance