定义两个类:ClassA和Test,Test继承ClassA
public class ClassA {
public static String str = "A静态字符串";
private int a = 8;
static {System.out.println("A静态代码块");}
public void ClassA() {
}
{
System.out.println("A构造代码块!");
}
boolean isAble = true;
}
public class Test extends ClassA{
public static String str = "静态字符串";
private int a = 8;
boolean isAble;
static {System.out.println("静态代码块");}
{System.out.println("构造代码块!");}
public static void main(String[] args) {
new ClassA();
}
}
执行Test中的main方法,类和成员的加载如下:
1.先加载父类中静态资源,非静态不加载
2.Test加载自身静态资源,静态变量和静态代码块
3.按顺序加载Test中的非静态资源和执行构造代码块