一 java
1.代码块
1) 理解
使用构造器时:先默认 调用代码块内容 再调用 构造器内容【代码块 > 构造器】
1.1 细节
1)静态代码块 只能加载一次
2)先调用父类代码块 再子类代码块
3)静态代码块是随着类加载而执行【只能执行一次】,普通代码块是随对象创建(new)而执行【注意:使用 类名 . 静态成员时,不会执行】
---------------------------------------------------------------------------------------------------------------------------------
4)代码块和属性初始化 优先级一样(按照定义 从上到下执行即可 )
5)【static】静态 优先级 》》》》 普通,先执行静态的,再执行普通的
6)属性初始化 / 代码块 优先级 大于 构造器==》构造器最后
-------------------------------------------------------------------------------------------------------------------
7)构造器中 隐含 super和调用 本类的 普通成员 【super 到 父类的 构造器中。。。。。以此类推】
-------------------------------------------------------------------------------------------------------------------
1.2 总结来说:
在创建一个有继承关系的子类时,在静态代码块,普通代码块,构造方法都有的情况下,调用的优先级顺序如下: 父类静态 > 子类静态 > 父类普通 > 父类构造 > 子类普通 > 子类构造
=========假设创建了一个子类对象 new 【视频 389】
1)类加载期间 :
父类【静态(代码块,属性初始化)从上到下】-----------》》》 ---------子类【静态从上到下】
2)对象创建期间
子类构造器【super()--------》》------普通(代码块,属性)】----------》》》-------【super()--》】父类构造器。。。。。