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

承袭的实例变量能不能被覆盖

2013-03-22 
继承的实例变量能不能被覆盖小弟最近在一本书上看到一个结论:继承下来的方能可以被覆盖,但实例变量不能被

继承的实例变量能不能被覆盖
小弟最近在一本书上看到一个结论:继承下来的方能可以被覆盖,但实例变量不能被覆盖。

方法能被覆盖我没什么意见,但是实例变量我觉得也能被覆盖,下边是我写的例子:


class AAA {
int ivar = 6;

public void noise() {
System.out.println("a a a ....");
}
}

class BBB extends AAA {
int ivar = 8;//没有这句,main()里边打印出来的是 6

public void noise() {
System.out.println("b b b ....");
}
}

public class OverrideTest {

public static void main(String args[]) {
BBB b = new BBB();

b.noise();
System.out.println("ivar = " + b.ivar);
}

}


BBB 中 int ivar = 8 难道不算是覆盖吗?请各位大哥大姐帮忙看看,谢谢!
[解决办法]
成员变量准确点是叫隐藏,你用AAA b = new BBB()再用b调用属性看看
如果重写了这个返回的依然是BBB的

热点排行