Bootstrap

Java 易错知识点

1、以下程序执行的结果是:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class X{
     Y y= new Y();
     public X(){
         System.out.print( "X" );
     }
}
class Y{
     public Y(){
         System.out.print( "Y" );
     }
}
public class extends X{
     Y y= new Y();
     public Z(){
         System.out.print( "Z" );
     }
     public static void main(String[] args) {
         new Z();
     }
}

正确答案: C   你的答案: 空 (错误)

ZYXX
ZYXY
YXYZ
XYZX

初始化过程: 
1.  初始化父类中的静态成员变量和静态代码块  ; 
2.  初始化子类中的静态成员变量和静态代码块  ; 
3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
4.初始化子类的普通成员变量和代码块,再执行子类的构造方法; 
 
(1)初始化父类的普通成员变量和代码块,执行  Y y=new  Y();   输出Y 
(2)再执行父类的构造方法;输出X
(3)  初始化子类的普通成员变量和代码块,执行  Y y=new     Y();   输出Y 
(4)再执行子类的构造方法;输出Z
 所以输出YXYZ


;