本帖最后由 18643448863 于 2014-10-9 07:28 编辑
- class X {
- Y b = new Y();
- X() {
- System.out.print("X");
- }
- }
- class Y {
- Y() {
- System.out.print("Y");
- }
- }
- public class Z extends X {
-
- Y y = new Y();
- Z() {
- System.out.print("Z");
- }
- public static void main(String[] args) {
- new Z();
- }
- }
复制代码
我的理解 首先是默认初始化 都为NULL, 然后是显示初始化 都为Y ,之后是构造代码快初始化 因为 Z继承X 所以X先要对 x中的对象构造代码快初始化为X然后是子类的构造代码快初始化为Z ,我的这个思路输出应该是YYXZ,可是输出结果是YXYZ ,对于这个创建对象的初始化过程, 不知道我的思路哪里出了问题。 |