1 分析
1 当创建一个子类对象时,首先加载父类和子类到方法区。然后对子类和父类执行静态代码块和静态属性的初始化;
2 接着从子类的构造器入手,构造器前两行隐藏了①super();②普通代码块和普通属性初始化两个操作;所以先执行super(),这里的执行同上;再执行普通代码块和普通属性初始化;
3 最后执行构造器的其他操作;
4 注意静态代码块和静态属性初始化只执行一次,普通代码块和普通属性初始化实例化一次执行一次。
5 加载类的几种操作有:
2 看一个例子
2.1 父类AAA
![](/i/l/?n=24&i=blog/2114974/202402/2114974-20240211210053152-2040840407.png)
2.2 子类BBB
![](/i/l/?n=24&i=blog/2114974/202402/2114974-20240211210149644-1512548416.png)
2.3 main函数
2.3.1 创建子类
2.3.2 调用静态方法
3 心得
静态的东西与类加载有关,类一旦加载就有了,且只执行一次
普通的代码块也好属性初始化也好都是在创建了对象的前提下才有的
静态的是公共的不用实例化就有
普通的时私有的,创建对象后才有