本帖最后由 한숨짓다 于 2014-5-19 21:59 编辑
请看代码:
注解:这里的2种情况,首先我按照我知道的调用一个构造方法,是先执行成员因为只有成员存在了才去执行它的构造方法,让构造方法对成员进行初始化处理。另外,还得高清楚的是子类继承一个父类,启动子类的
的构造方法,必须的首先调用父类的构造方法。这一点毋庸置疑。但是按照这样思想走,那为什么在情景一中会首先执行的X(){System.out.print("X");}后执行Y y=new Y()呢?这是第一点疑惑!!紧接着,情景 二中为什么首先执行的却是X类中的X(){System.out.print("X");},为什么不是像情景一种一样首先执行Y y=new Y(),这是第二点疑惑?
为了解决这个问题,我用debug进行测试看了一下执行的过程。感觉也挺奇怪的。
大神门,你们有点思路了吗?
|
|