下面代码执行的结果是多少?

来源:互联网 发布:刻绘大师端口怎么设置 编辑:程序博客网 时间:2024/06/06 02:58

//父类中

package test1;public class Parent {    static int a = 1;    static {        a = 10;        System.out.println("1");    }    public Parent(){        System.out.println("2");    }    public static void main(String[] args) {        System.out.println("3");        Parent c = new Child();    }}

//子类中

package test1;public class Child extends Parent{ static int a =2; static{     a=20;     System.out.println("4"); } public Child(){     System.out.println("5"); }}

执行的结果是什么
main方法在父类中,所以,方法执行时,加载父类的.class文件。执行父类静态代码块。
即便main方法没有代码。再执行打印3操作。
新建一个子类,子类继承自父类,父类的静态代码块先执行,但是刚才已经执行过了,所以父类的不再执行,子类的静态代码块再执行。

接下来就是父类的非静态代码块先执行,父类的构造函数执行;
子类的非静态代码块执行,子类的构造函数执行。

执行的结果

13425

阅读全文
0 0