JAVA中的静态代码块 构造代码块 构造方法执行顺序:
静态代码块(类加载时执行)>>构造代码块>>构造方法
下面展示一个简单的例子,推荐大家动手运行一遍:
public class Main { public static void main(String[] args) { son s = new son(); } }
/*父类*/ public class father { private static String faterstaticArea = "father static area"; static { System.out.println(faterstaticArea); System.out.println("father static block"); } private String faterConstructorArea = "father Constructor area"; { System.out.println(faterConstructorArea); System.out.println("father Constructor block"); } father(){ System.out.println("father constructor"); } }
//son继承father public class son extends father{ private static String sonStaticArea = "son static area"; static { System.out.println(sonStaticArea); System.out.println("son static block"); } private String sonConstructorArea = "son Constructor area"; { System.out.println(sonConstructorArea); System.out.println("son Constructor block"); } son(){ System.out.println("son constructor"); } }
//运行结果 father static area //首先加载父类 father static block son static area //加载子类 son static block father Constructor area //构造父类 father Constructor block father constructor //执行构造代码块再执行构造方法 son Constructor area //构造子类 son Constructor block son constructor //执行构造代码块再执行构造方法