问:以上代码块中,子类继承父类,子类父类中都有“构造代码块”、“普通代码块”,“静态代码块”。当main方法执行时,各个输出语句的执行顺序是怎样的?
答:要想知道输出顺序,得先搞清楚各个代码块执行的优先级,Java程序中:“静态代码块”优先于“普通代码块”,“普通代码块”优先于“构造代码块”,此程序中有继承关系,于是“父类的静态代码块”==>“子类的静态代码块”==>“父类的普通块、构造块”==>“子类的普通块、构造块”。执行以上代码可得如下图结果:
问:以上代码块中,子类继承父类,子类父类中都有“构造代码块”、“普通代码块”,“静态代码块”。当main方法执行时,各个输出语句的执行顺序是怎样的?
答:要想知道输出顺序,得先搞清楚各个代码块执行的优先级,Java程序中:“静态代码块”优先于“普通代码块”,“普通代码块”优先于“构造代码块”,此程序中有继承关系,于是“父类的静态代码块”==>“子类的静态代码块”==>“父类的普通块、构造块”==>“子类的普通块、构造块”。执行以上代码可得如下图结果: