Hallo zusammen. Ich habe da mal eine Frage zu Super, extends und einem Rückgabewert.
Ich habe in meiner Klasse Super zwei Klassen A und B, wobei B von A vererbt. In den Klassen A und B habe ich jeweils die Methode boolean aWert(). Ich möchte in der Klasse B, in der Methode aWert() wissen, ob in der Klasse A in der selben Methode aWert true oder false ist. Wie muss mein Rückgabewert an der Stelle sein, wo die vielen Fragezeichen stehen?
Für einen Tipp wäre ich froh.
Ich möchte von meiner Methode boolean AWert() in der Klasse B wissen, ob in der Klasse A, in der selben Methode der Wert aWert true oder false ist und ihn als Rückgabewert zurückgeben.
Für einen Javaeinsteiger wie mich hat das Wort "seltsam" sicherlich eine andere Bedeutung als für dich.
Entweder es funktioniert oder nicht.
...es war halt eine Aufgabe, wo ich vereinfacht, einen Sachverhalt rausgefischt habe.
Ich dachte, man benötigt, um auf die selbe Methode in einer Oberklasse zugreifen zu können, den Ausdruck super?
Wichtig ist auch, dass Klasse B extends A vorhanden ist.
Auf jeden Fall waren Interfaces und implements noch nicht Gegenstand der Vorlesung.
Wenn B.AWert() dasselbe zurückgeben soll wie A.AWert(), dann überschreibe die Methode AWert() in B einfach nicht. Du willst innerhalb von B.AWert() wissen, ob A.AWert() true oder false zurückliefern würde?? Und was willst du dann mit der Information machen? Willst du diesen Wert dann einfach an den Aufrufer weiterleiten, dann wie gesagt - überschreibe die Methode einfach nicht. Oder willst du in B.AWert() Logik ausführen basierend auf dem Wert von A.AWert()? Dann verwende einfach das Ergebnis von `super.AWert()` innerhalb von B.AWert(). Du rufst die super-Methode ja schon auf, machst nur nichts mit dem Rückgabewert aktuell.
In deiner Unterklasse brauchst du die Methode "AWert()" garnicht, die ist komplett überflüssig. Wenn du die trotzdem implementieren willst und dabei super benutzen willst könntest du das so machen:
Wie kann ich das tun? Also wie kann ich den Wert von A.AWert() mir als boolean geben lassen?
ich kann ja in der B Klasse in der Methode AWert() nicht schreiben:
boolean Neu = super.AWert();