[code="java"]
public class Father {
public static void main(String[] args) {
Father father=new Son();
System.out.println(father.a);
}
public Father(){
System.out.println("i am father");
}
public void read(){
System.out.println("father is reading");
}
}
class Son extends Father{
int a = 10;
public Son(){
System.out.println("i am son");
}
public void read(){
System.out.println("son is reading");
}
public void write(){
System.out.println("son is writing");
}
}
[/code]
这样一段代码,编译是不通过的,因为Main 方法中调用不到Son类中的成员变量a,但是删掉打印语句,用Debug调试的时候创建的father引用中是可以看到a的值的。为什么?请详细解释一下 最好能有个内存说明!