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这个成员变量和它的值,不是你理解的那样子类把父类的成员变量的值覆盖。