class Insect {
private int t = printInit("init SuperClass not static attribute");
private int i = 9;
protected int j;
Insect() {
System.out.println("execute SuperClass constructor.");
System.out.println("i = " + i);
System.out.println("j = " + j +"\n --初始化父类,先初始非静态变量后构造方法\n");
j = 39;
}
private static int x1 = printInit("init SuperClass static attribute");
static int printInit(String s) {
System.out.println(s);
return 47;
}
}
public class Beetle extends Insect {
private int k = printInit("init SubClass not static attribute");
public Beetle() {
System.out.println("execute SubClass constructor.");
System.out.println("k = " + k);
System.out.println("j = " + j +"\n --初始化子类,先初始非静态变量后构造方法");
}
private static int x2 = printInit("init SubClass static attribute\n --首先以先父后子类顺序初始化static变量结束\n");
public static void main(String[] args) {
System.out.println("init SubClass constructor\n --下面new Beetle()开始调用子类构造器\n");
Beetle b = new Beetle();
}
}
输出结果: