Java中类的加载顺序执行结果

具体代码如下所示:

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中类的加载顺序执行结果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对菜鸟教程(cainiaojc.com)网站的支持!

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。