静态初始化和实例初始化

父类单独的效果:
当父类单独执行时,静态初始化块优先执行,然后是实例初始化块,最后才是构造器;
这里写图片描述

子类单独效果
首先执行父类的静态初始化块和子类的初始化块(优先执行静态)然后执行父类的实例初始化块和构造器,最后执行子类的实例初始化块和构造器
这里写图片描述

父类子类效果1
父在前子在后:
先将父类的对象实例出来后,进行子类的实例化,首先执行子类的静态初始化块,然后回到父类执行父类的实例初始化块和构造器,再执行子类的实例初始化块和构造器
这里写图片描述
父类子类效果2
子在前父在后:
先执行父类的静态初始化块,然后执行子类的静态初始化块
之后回到父类执行父类的实例初始化块和构造器
在回到子类执行子类的实例初始化块和构造器,至此子类的实例化才创建完成,接下来就执行创建父类的程序
执行实例初始化(可执行多次)块和构造器
这里写图片描述

结论:

  • 首先静态初始化块 ,其次 实例初始化块,最后构造器
  • 静态初始化块只能执行一次,实例初始化块创建几次对象执行几次
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页