一个类中执行顺序:
静态变量
静态代码块
代码块
构造方法
子类和父类执行顺序:
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类代码块
父类构造方法
子类代码块
子类构造方法
直接看代码,一目了然。
public class Test { public static void main(String[] args) { new A(); /* 结果: * A静态变量 A静态代码块 A代码块 A构造方法 * */ new B(); /* * 结果: * A静态变量 A静态代码块 B静态变量 B静态代码块 A代码块 A构造方法 B代码块 B构造方法 * */ } } class A{ static C c =new C("A"); { System.out.println("A代码块"); } static { System.out.println("A静态代码块"); } public A(){ System.out.println("A构造方法"); } } class B extends A{ static C c =new C("B"); { System.out.println("B代码块"); } static { System.out.println("B静态代码块"); } public B(){ System.out.println("B构造方法"); } } class C { public C(String str){ System.out.println(str+"静态变量"); } }
原文地址:https://www.cnblogs.com/jinghun/p/9205144.html
时间: 2024-10-08 00:24:01