public class nbl extends B {
int i = 3; public void f() {
System.out.println(i);
System.out.println(super.i);
//怎麼能夠訪問到A中的i?
} public static void main(String[] args) {
new nbl().f();
}}class A {
int i = 1;
}class B extends A {
int i = 2;
}
也许只能通过在B中写一个方法来完成了吧。。

解决方案 »

  1.   

    this.getClass().getSuperclass().getSuperclass().getDeclaredField("i").getInt(this)
    ……不知道还有没更好的方法……
      

  2.   

    可以简短点点:A.class.getDeclaredField("i").getInt(this);不过如果有这种应用场景,说明程序设计出问题了。
      

  3.   

     System.out.println(i);
            System.out.println(super.i);
            System.out.println(((A)this).i);