类初始化过程

类初始化过程

1. 初始化父类的静态成员和静态代码块,按顺序执行,只执行一次;

2. 初始化子类的静态成员和静态代码块,按顺序执行,只执行一次;

3. 初始化父类的实例成员和实例代码块,按顺序执行,每次创建对象都执行一次;

4. 初始化父类的构造方法,每次创建对象都执行一次;

5. 初始化子类类的实例成员和实例代码块,按顺序执行,每次创建对象都执行一次;

6. 初始化子类的构造方法,每次创建对象都执行一次;

 1 package test;
 2 
 3 class ClassInitSuper{
 4     static {
 5         System.out.println("super static init");
 6     }
 7     
 8     {
 9         System.out.println("super instance init");
10     }
11     
12     public ClassInitSuper(){
13         System.out.println("super new init");
14     }
15 }
16 
17 
18 public class ClassInit extends ClassInitSuper{
19 
20     static {
21         System.out.println("sub static init");
22     }
23     
24     {
25         System.out.println("sub instance init");
26     }
27     
28     public ClassInit(){
29         System.out.println("sup new init");
30     }
31     
32     public static void main(String[] args) {
33         new ClassInit();
34         new ClassInit();
35         
36     }
37     
38     public static void test(){
39         
40         
41     }
42 
43 }

输出结果如下:

super static init
sub static init
super instance init
super new init
sub instance init
sup new init
super instance init
super new init
sub instance init
sup new init
原文地址:https://www.cnblogs.com/fzqm/p/6822161.html