java的类加载顺序

时间:2021-11-29 17:34:20
public class InitDemo extends FatherClass {

{
System.out.println("子类-->非静态代码块");
}

DemoClass d5 = new DemoClass("子类-->成员变量d5");
static DemoClass d4 = new DemoClass("子类-->静态成员变量d4");

static {
System.out.println("子类-->静态代码块");
}


public InitDemo() {
System.out.println("子类-->构造器");
}

public static void main(String[] args) {
InitDemo initDemo = new InitDemo();
}
}

class FatherClass {
static DemoClass d1 = new DemoClass("父类-->静态成员变量d1");
static DemoClass d2;

DemoClass d3 = new DemoClass("父类-->非静态成员变量d3");

static {
System.out.println("父类-->静态代码块");
d2 = new DemoClass("父类-->静态成员变量d2");
}

{
System.out.println("父类-->非静态代码块");
}

public FatherClass() {
System.out.println("父类-->构造方法");
}
}

class DemoClass {
public DemoClass(String s) {
System.out.println(s);
}
}