具体代码如下所示:

public class Parent {
  public static int a = parentStaticMethod2();
  {
    System.out.println("父类非静态初始化块");
  }
  static {
    System.out.println("父类静态初始化块");
  }
  public Parent() {
    System.out.println("父类的构造方法");
  }
  public static int parentStaticMethod() {
    System.out.println("父类类的静态方法1");
    return 10;
  }
  public static int parentStaticMethod2() {
    System.out.println("父类的静态方法2");
    return 9;
  }
  @Override
  protected void finalize() throws Throwable {
    // TODO Auto-generated method stub
    super.finalize();
    System.out.println("销毁父类");
  }
  public static void main(String[] args) {
    new Child();
  }
}
class Child extends Parent {
  {
    System.out.println("子类非静态初始化块");
  }
  static {
    System.out.println("子类静态初始化块");
  }
  public Child() {
    System.out.println("子类的构造方法");
  }
  public static int childStaticMethod() {
    System.out.println("子类的静态方法");
    return 1000;
  }
  @Override
  protected void finalize() throws Throwable {
    // TODO Auto-generated method stub
    super.finalize();
    System.out.println("销毁子类");
  }
}

执行结果:

父类的静态方法2
父类静态初始化块
子类静态初始化块
父类非静态初始化块
父类的构造方法
子类非静态初始化块
子类的构造方法

总结

以上所述是小编给大家介绍的Java中类的加载顺序执行结果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

02-07 06:38