私はJava認証の質問とその出力の種類から特定のコードを取得しました。ここでは、コード継承の予期しない出力
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());
}
}
出力されている。
Beta 44
4 44
私はそれがあることを期待していた。
4 Beta 44
44
は、なぜそれがこの出力を生成しますか?
'System.out.println(bh +" "+ b.getH());'行を実行すると、単一の 'String'を' System.out.println'と 'getH'呼び出しに渡しています最初に完了しなければなりません。そうでなければ 'System.out.println'に渡す' String'はありません –