搞不懂。。。

[复制链接]
查看11 | 回复1 | 2010-6-28 21:43:45 | 显示全部楼层 |阅读模式
class A{
int i=100;
void abc(){System.out.println(i);}
}
class B extends A{
int i=999;
void abc(){super.abc();System.out.println(i);}
}
public class Test{
public static void main(String[] args){
B a = new B();
a.abc();
}
}
运行后是
100
999
why?????

回复

使用道具 举报

千问 | 2010-6-28 21:43:45 | 显示全部楼层
super.abc()表示调用父类的abc()方法,即A类的abc方法,而该方法要打印属性i,对于父类方法只能看见自己的属性,也即此时的i是100,而接着打印i是a对象即B类的i 自然是999了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行