当前位置: 代码迷 >> J2SE >> 继承的实例变量能不能被覆盖解决办法
  详细解决方案

继承的实例变量能不能被覆盖解决办法

热度:261   发布时间:2016-04-24 02:25:49.0
继承的实例变量能不能被覆盖
小弟最近在一本书上看到一个结论:继承下来的方能可以被覆盖,但实例变量不能被覆盖。

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

Java code
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的
  相关解决方案