黑马程序员-java基础-继承中类的初始化顺序

来源:互联网 发布:淘宝正版cd店 编辑:程序博客网 时间:2024/05/16 06:37

------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

0 0
原创粉丝点击