class Super { private static int i = 1; static { System.out.println("super 静态方法块!" + i); } { System.out.println("super 普通方法块!"); } public Super() { System.out.println("super 构造方法!"); } } class Base extends Super { private static int i = 2; static { System.out.println("Base 静态方法块!" + i); } { System.out.println("Base 普通方法块!"); } public Base(Other other) { System.out.println("Base 构造方法!"); } } class Other { private static int i = 3; static { System.out.println("Other 静态方法块!" + i); } public Other() { System.out.println("Other 构造方法!"); } { System.out.println("Other 普通方法块!"); } }
》》》》
public static void main(String[] args) { Base base = new Base(new Other()); }
》》》》super 静态方法块!1
Base 静态方法块!2
Other 静态方法块!3
Other 普通方法块!
Other 构造方法!
super 普通方法块!
super 构造方法!
Base 普通方法块!
Base 构造方法!
父类静态变量及父类静态块》子类静态变量及子类静态块》依赖对象静态方法块》依赖对象普通方法块》依赖对象构造方法》父类实例变量及父类普通初始方法块》父类构造方法》子类实例变量及子类普通初始方法块》子类构造方法