java类初始化的顺序

java类的初始化的执行顺序

牛B的框架学的也不扎实,会用是会用,根本无从头绪的去理解其含义,已经成了固定模式化的机器,一点一点巩固基础吧!

自己敲了一下看看

1、创建这个执行顺序的父类ExecutionSequenceDemo01

public class ExecutionSequenceDemo01 {

    /**
     * @Description
     * @Author shiyunpeng
     * @Date 2018\12\18 0018 20:55
     * @Param [a]
     * @Return a
     * @Exception
     */

    {
        System.out.println("父:构造块");
    }
    static {
        System.out.println("父:静态代码块");
    }
    public ExecutionSequenceDemo01(){
        System.out.println("父:构造方法");
    }

}

2、执行顺序的子类ExecutionSequenceDemo02 来 继承 这个父类ExecutionSequenceDemo01

public class ExecutionSequenceDemo02 extends ExecutionSequenceDemo01{

    {
        System.out.println("子:构造块");
    }
    static {
        System.out.println("子:静态块");
    }
    public ExecutionSequenceDemo02(){
        System.out.println("子:构造方法");
    }

    public static void main(String[] args) {
        ExecutionSequenceDemo01 e = new ExecutionSequenceDemo01();

    }
}

3、在子类的main()方法中创建父类对象执行运行结果:

父:静态代码块
子:静态块
父:构造块
父:构造方法

4、main()方法中再用多态来创建个对象

 public static void main(String[] args) {
        ExecutionSequenceDemo01 e = new ExecutionSequenceDemo01();
        System.out.println("---------------------------------------");
        ExecutionSequenceDemo01 e1 = new ExecutionSequenceDemo02();
 }

5、执行结果:

父:静态代码块
子:静态块
父:构造块
父:构造方法
---------------------------------------
父:构造块
父:构造方法
子:构造块
子:构造方法

综上所得结果:

  1. 静态代码块只执行一回
  2. 静态代码块最先执行
  3. 构造块,new个对象构造一次

得:好像没啥东西,这顺序也很好屡,只要满足这条件即可!

猜你喜欢

转载自blog.csdn.net/qq_37384795/article/details/85082199
今日推荐