当new Zi(); 对象时,,它会首先找到父类的空参构造函数,父类中的空参构造函数又调用了show方法,编译时期他会编译父类的show 方法(如果你把父类的show删除会报编译异常),但 当运行时它就会找子类中有没有show();,如果有就执行子类中的show()(如果你把子类中的show删除,他就会运行父类的),num 是成员变量,成员变量分配在栈内存中,且初始值为0; 所以这段代码在执行时,并没有执行到int num =20;,,而只是在加载字节码文件时在栈内存中给num 开辟了一块初始值为0 的内存空间,不知道我这样说你懂了吗? |