------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
java中类的初始化顺序是:
1 在同一个类中中:先进行成员变量的初始化(默认初始化,显式初始化),再进行构造方法初始化
2 在继承中,是分层初始化的,即先初始化父类,再初始化子类
举个例子
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() {
//super
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
答案是:YXYZ
分析:在加载类z的时候,发现他有父类x,故先对x进行初始化。在x中,先对成员变量初始化,即Y b = new Y();结果是y,再对构造方法初始化,结果是x,
回到类z中,对z的成员变量初始化,即Y y = new Y();结果是y.再对构造方法初始化,结果是:z 所以答案是:YXYZ