读书人

继承时子类父类内存有关问题

发布时间: 2012-06-14 16:00:31 作者: rapoo

继承时子类父类内存问题
Public class Base {
int a;
public Base(){
a=5;}
public void sh0W(){
sys…println(a);}

public class Sub extends Base{
pubic Sub(){a=9;}


public class Test{
…main(…){
parent p=new parent();
sub s=neW sub();
p.shoW();
s.sh0W();
结果为什么不是9,9啊?创建子类时不是已经把父类的a=5变成a=9了吗

[解决办法]
你new parent()和new sub()的时候分别在内存的堆空间分配了两块区域,这两块区域分别存有a这个成员变量和它的值,不是你理解的那样子类把父类的成员变量的值覆盖。

读书人网 >Java面试

热点推荐