代码逻辑题之继承-静态代码块-main方法执行顺序

Posted qq1452753919

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码逻辑题之继承-静态代码块-main方法执行顺序相关的知识,希望对你有一定的参考价值。

前提知识:

  (暂未发布)面向对象继承相关知识

  (暂未发布)static与静态代码块

  JVM入门之main方式详解

  (暂未发布)JVM加载类的顺序

public class ParentMainTest {
    static int x;
    static {
        x++;
        System.out.println("ParentMainTest_static..." + x);
    }
    public static void main(String[] args) {
        new SonMainTest(6);
    }
    int n = 10;
    {
        n++;
        System.out.println("ParentMainTest..." + n);
    }

}
public class SonMainTest extends ParentMainTest{ SonMainTest(int a){ this.a=a; System.out.println("SonMainTest.a=" + a ); } int a; { System.out.println("SonMainTest..."+this.a); } static { x++; System.out.println("SonMainTest_static..." +x); } }
技术图片
输出结果:
ParentMainTest_static...1
SonMainTest_static...2
ParentMainTest...11
SonMainTest...0
SonMainTest.a=6
答案解析

 具体分析:等我有时间再酌情分析

以上是关于代码逻辑题之继承-静态代码块-main方法执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

java代码执行顺序

java中静态代码块构造代码块构造方法main函数的执行顺序?

Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺

静态块main方法构造块构造方法的执行顺序

10代码块构造代码块静态代码块及main方法之间的关系

在继承当中这些方法及代码块执行顺序是什么样的