次の定義があるとします。
public class Test {
public static void main(String[] args) {
System.out.println("------MAIN METHOD------");
A a = new B();
a.a = 3;
System.out.println(a.a);
}
}
public class A {
int a;
public void g(){
System.out.println(a);
}
}
public class B extends A {}
ここで、上記をビルドしてから B を次のように変更するとします。
public class B {}
ベリファイアをオフにすると、メソッドは 3! を出力します。私は検証者がこれをキャッチしないことを理解しています.解決はAでフィールドaがあることをチェックします.これはケースです...しかし、Bは整数フィールドaにスペースを割り当てていません! じゃあどこに書くの?