静态块和匿名块

匿名代码块:在每次调用构造器创建对象之前执行

静态代码块:在类首次被加载的时候执行

Father类

public class Father {

    static{

        System.out.println("1---Father---------静态代码块");

    }

    {

        System.out.println("2---Father---------匿名代码块");

    }

    public Father(){

        this(3);

        System.out.println("3---Father---------无参构造器");

    }

    public Father(int i){

        System.out.println("4---Father---------有参构造器");

    }

    public void method(){

        System.out.println("5---Father---------方法");

    }

}    

Son类

public class Son extends Father {

    static{

        System.out.println("6---son---------静态代码块");

    }

    {

        System.out.println("7---son---------匿名代码块");

    }

    public Son(){

        this(3);

        System.out.println("8---son---------无参构造器");

    }

    public Son(int i){

        System.out.println("9---son---------有参构造器");

    }

    public void method(){

        System.out.println("10---son---------方法");

    }

}

测试类

public class Test {

    public static void main(String[] args) {

        new Son();

    }

}

执行结果:

1---Father---------静态代码块

6---son---------静态代码块

2---Father---------匿名代码块

4---Father---------有参构造器

3---Father---------无参构造器

7---son---------匿名代码块

9---son---------有参构造器

8---son---------无参构造器

你可能感兴趣的:(静态块和匿名块)