首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

super也无能为力?小弟我感觉小弟我跑偏了

2012-04-12 
super也无能为力?我感觉我跑偏了~Java codepublic class nbl extends B {int i 3public void f() {Syst

super也无能为力?我感觉我跑偏了~

Java code
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中写一个方法来完成了吧。。

[解决办法]
this.getClass().getSuperclass().getSuperclass().getDeclaredField("i").getInt(this)
……不知道还有没更好的方法……
[解决办法]
可以简短点点:A.class.getDeclaredField("i").getInt(this);

不过如果有这种应用场景,说明程序设计出问题了。
[解决办法]
System.out.println(i);
System.out.println(super.i);
System.out.println(((A)this).i);

热点排行