誰かがスーパークラスからではなくサブクラスから変数をプリントする理由を説明することができますか?クラス変数をJavaでオーバーライドすることはできませんか?変数の上書きの説明Java継承
class A {
int i = 1;
int fun() {
return i;
}
}
class B extends A {
int i = 2;
}
class Main {
public static void main(String[] args) {
System.out.println(new B().fun());
}
}
これは1
の代わり2
を出力します。
フィールドはオーバーライドできません。 –
'fun()'がAからBに拡張され、値が1のfunメソッドが呼び出されているためです。フィールドはメソッドのみをオーバーライドすることはできません – Lokesh
'上書き'を意味し、 '上書き'は意味しません。Javaの変数を上書きすることはありません。 – EJP