日期:2014-05-20  浏览次数:20672 次

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

public class Sub extends Base{
pub乚ic 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这个成员变量和它的值,不是你理解的那样子类把父类的成员变量的值覆盖。