Java继承 子类的内存模型
package subClass;
class ParentClass {
public void fun(){
System.out.println("ParentClass--->fun()");
}
}
class SubClass extends ParentClass{
int i=100;
String name=new String("SubClass");
public void fun(){
super.fun();
System.out.println(name+"--->"+i);
}
}
public class TestExtends {
public static void main(String args[]){
SubClass sub=new SubClass();
sub.fun();
}
}
1.super 是父类引用,当jvm加载subClass 时,将父类的引用(super)加载到子类的栈内存中。
2.this是子类的引用,当jvm加载subClass 时,将当前对象的引用(this)存放于自己的栈内存中。
3.具体调用,先查找当前子类的实现,如果没有,就查找父类是否有实现。