Ich habe einen bestimmten Code von Java-Zertifizierung Frage und seine Ausgabe Art von mir verwirrt. Hier ist der CodeUnerwartete Ausgabe in Vererbung
class Baap {
public int h = 4;
public int getH() {
System.out.println("Baap " + h);
return h;
}
}
class Beta extends Baap {
public int h = 44;
public int getH() {
System.out.println("Beta " + h);
return h;
}
public static void main(String[] args) {
Baap b = new Beta();
System.out.println(b.h + " " + b.getH());
}
}
Der Ausgang ist:
Beta 44
4 44
Ich hatte erwartet, es zu sein:
4 Beta 44
44
Warum es diese Ausgabe erzeugen?
Wenn Sie die Zeile 'System.out.println (bh +" "+ b.getH()); ausführen', übergeben Sie einen einzelnen 'String' an' System.out.println' und den 'getH'-Aufruf muss zuerst vervollständigt werden, sonst gibt es keine 'Zeichenfolge', die an' System.out.println' übergeben werden kann. –