一个java类的加载顺序,今天作了一个实验,结果以下java
超类的静态成员web
超类的静态块函数
子类的静态成员spa
子类的静态块code
超类的非静态成员orm
超类的构造函数it
子类的非静态成员class
子类的构造函数import
class Parent1 { private String parent="parent init"; private static String staticVar="Parent static init"; public Parent1(){ System.out.println(parent); System.out.println("parent constructor......"); } static{ System.out.println("parent static block ........"+staticVar); } } class Son1 extends Parent1{ private String son="son init"; private static String staticSonnVar="son static init"; public Son1(){ System.out.println(son); System.out.println("son constructor...."); } static{ System.out.println("son static block....."+staticSonnVar); } } public class ClassProject { public static void main(String[] args) { // Parent1 parent=new Parent1(); Son1 son=new Son1(); } }
结果:构造函数
parent static block ........Parent static init
son static block.....son static init
parent init
parent constructor......
son init
son constructor....