Java Rätsel

Wenn es so leicht wäre, wäre es ja kein Rätsel. ;-)

Ich hatte vor einiger Zeit mal so ein Konstrukt programmiert und war dann ebenso verblüfft, als ich nen Fehler hatte. :-)
 
Naja, ich hatte nen Fehler, weil ich halt ne Variable mit null initialisiert hatte. Also kam da dann eine NullPointerException. Das passiert hier ja nicht.

Morgen wirst du es spätestens Erfahren. Es sei Tom sagt vielleicht heute noch was oder jemand anderes. ;-)

MFG

Sascha
 
Gut, wenn ich eh noch Zeit hab, dann rate ich schnell nochmal. ;)

Java führt die Initialisierung von ausgabeString genau genommen erst im Konstruktor von AusgabeChild aus. Evtl. erst nach dem Aufruf von super()?

Klingt für mich zwar irgendwie weit hergeholt, aber ein anderer Grund fällt mir nicht ein. :suspekt:

Grüße, D.
 
Hmmm Wo ist da das Rätsel? Die Ausgabe ist "Initialize" mit einem nachfolgendem "wird man dieses lesen?".
Durch das "super();" wird doch nur der Konstruktor der Vaterklasse aufgerufen, in dem die Ausgabe von "Initialize" erfolgt. Und dann eben das Syso aus dem Konstruktor von AusgabeChild.
Oder hab ich da was nicht mitbekommen :confused:
 
Zuletzt bearbeitet:
@hammet:
Ein Prinzip der objectorientierten Programmierung ist ja Polimorphie und dieses garantiert ja, dass die überschriebene initialize-Methode aufgerufen wird.
Danach sollte man eigentlich was anderes erwarten, weil die aufgerufene initialize-Methode des Childs den String überschreibt.

Grüße, D.
 
Wird sie ja. Nur Initialisiert Java den AusgabeString als null und führt die Wertzuweisung erst nach den Init-Methoden durch. Die Zuweisung in der Child-Initialize-Methode ändert den Wert vom AusgabeString von null in den den gewünschten Text. Aber wie schon gesagt, wird die Wertzuweisung global erst nach den Initalisierungen vorgenommen.
 
Zuletzt bearbeitet:
Hammet hat es ganz genau getroffen. Da brauche ich gar nicht mehr aufzulösen. :-)

Ich hätte im Konstruktor nicht mal super aufrufen müssen, da der Standard-Kontruktor (wenn vorhanden) der Parent-Klasse sowieso aufgerufen werden würde.

MFG

Sascha
 
Zurück