黑马程序员技术交流社区
标题:
java多态的问题
[打印本页]
作者:
che201311
时间:
2013-11-22 16:05
标题:
java多态的问题
class tes{
public static void main(String[] args)
{
a a1=new b;
System.out.println(a1);
}
}
class a{
int a=10;
}
class b extends a{
int a=20;
}
上面这段代码,会打印出10,但是根据java的动态绑定机制,a1实际类型其实是b 打印结果应该是20,那为什么实际结果是10呢?
作者:
习嘻嘻
时间:
2013-11-22 16:27
父类的方法会被重写,成员变量其实并没有被覆盖掉,子类的堆内存区域里还有父类的一片空间,里面存放着
父类的成员变量,因此父类引用调用成员变量找到的是自己的
太着急,代码写错了:
public static void main(String[] args)
{
a a1=new b();
System.out.println(a1.a);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2