jvm中会把所有加载的类模板保存起来,比如class A extends children,那么两个类都会分别保存,说白了,你调用super,就是对children类中的一个方法调用,然后返回继续执行A中的其它东西。jvm原理里边说,类中所有的方法是一个类的所有对象共享的所以保存在一个公共的位置,而声明一个对像其实就是给一个变量的属性分配了一块存储空间,也就是说对象中使用的方法不会分配空间,而是共享类中的。这样说:也就是说children类中的方法是存在的,但是不是存在A中而还是存在children类中,只不过,A有一个对children类的指针,A可以引用children类中的方法。理论的东西就是理论,我们只要注重怎么用就可以了。
public void f1(){
System.out.println("calling c1.f1,,给分吧,楼主");
}
}
public class csdnTemp extends c1{
public void f1(){
System.out.println("calling csdnTemp.f1,多少给点分啊");
}
public void test(){
f1();
super.f1();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
csdnTemp ct = new csdnTemp();
ct.test();
}
}
我们一般只是用的,如果你想学原理,你可以看看jvm原理的书,但总之消失不消失不重要,重要的是被overrider的方法我们不能用了。