子类和父类之间的静态代码块、静态方法、非静态代码块、构造函数之间的执行关系
父类:
public class StaticShunXu { public static void test(){ System.out.println("父类--静态方法"); //被子类的相同方法覆盖 } static { System.out.println("父类--静态代码块"); } public StaticShunXu() { System.out.println("父类--构造函数"); } { System.out.println("父类--非静态代码块"); } }
子类:
public class StaticShunXuB extends StaticShunXu{ public static void test(){ System.out.println("子类--静态方法"); } static { System.out.println("子类--静态代码块"); } { System.out.println("子类--非静态代码块"); } public StaticShunXuB() { System.out.println("子类--构造函数"); } }
执行结果:
父类--静态代码块 子类--静态代码块 父类--非静态代码块 父类--构造函数 子类--非静态代码块 子类--构造函数 子类--静态方法
程序员的眼里,不止有代码和bug,还有诗与远方和妹子!!!