温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!
1、Java中的初始化顺序是指在创建对象时,成员变量和代码块的初始化顺序。会先执行父类的静态代码块和静态成员变量的初始化,然后执行子类的静态代码块和静态成员变量的初始化。接着,会执行父类的非静态代码块和非静态成员变量的初始化,最后执行父类的构造方法。会执行子类的非静态代码块和非静态成员变量的初始化,最后执行子类的构造方法。
示例代码如下:
class Parent {
static {
System.out.println("父类的静态代码块");
}
{
System.out.println("父类的非静态代码块");
}
public Parent() {
System.out.println("父类的构造方法");
}
static int staticVar = 1;
int instanceVar = 2;
}
class Child extends Parent {
static {
System.out.println("子类的静态代码块");
}
{
System.out.println("子类的非静态代码块");
}
public Child() {
System.out.println("子类的构造方法");
}
static int staticVar = 3;
int instanceVar = 4;
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
}
}
输出结果为:
父类的静态代码块
子类的静态代码块
父类的非静态代码块
父类的构造方法
子类的非静态代码块
子类的构造方法
在上述示例中,首先执行父类的静态代码块,然后执行子类的静态代码块。接着,执行父类的非静态代码块和构造方法,最后执行子类的非静态代码块和构造方法。这就是Java中初始化顺序的过程。