Java - erweitert warum die Supervariable a 0 ist

8

Bitte schauen Sie sich diesen Code an:

%Vor%

Ergebnis: Konsolendruck: 0 9
Ich weiß, dass die Unterklasse zuerst die Oberklasse constructor
aufruft Aber warum ist 0 9 , nicht 8 9 ?

    
andy.hu 16.08.2017, 13:09
quelle

1 Antwort

14

Wenn der Sup -Konstruktor printA() aufruft, führt er die Methode printA der Klasse Sub aus (die die gleichnamige Methode der Klasse Sup überschreibt), so dass der Wert von% co_de zurückgegeben wird % Variable der Klasse a , die immer noch Sub ist, da die Instanzvariablen von 0 noch nicht initialisiert sind (sie werden erst initialisiert, nachdem der Sub -Konstruktor fertig ist).

    
Eran 16.08.2017, 13:11
quelle

Tags und Links