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.具體調用,先查找當前子類的實現,如果沒有,就查找父類是否有實現。