本帖最后由 韩松范 于 2013-3-9 17:51 编辑
在new对象的时候,类加载器加载父类,和子类到内存中
在堆内存开辟空间,分配地址值,在堆内存中建立对象的特有属性,并进行默认出示化。
然后因该是调用父类的构造函数。以前我认为子类的构造函数里隐性了这个代码super(),现在对此我表示怀疑。。。。。。。。
结果说明,父类的构造函数是优先于构造代码块执行的,而构造代码块应该是优先于构造函数,
所以调用父类的方法应该不是隐性的封装在构造函数内部
调用父类的构造函数,发现构造函数调用了show()方法,而这个show()方法前面省略了this
子类调用的父类构造函数,所以this是子类,也就是说执行的是子类的show()方法,
那么此时,int num 还只是处在默认初始化的阶段,所以还是0,所以打印出来时是0
|