加载顺序。(非继承)
1,static静态代码块和静态成员
2,普通成员
3,构造函数执行
(继承)无父则无子
- 父类静态代码区和父类静态成员 不包括方法
- 子类静态代码区和子类静态成员
- 父类非静态代码区和普通成员
- 父类构造函数
- 子类非静态代码区和普通成员
- 子类构造函数
构造方法最后加载,静态方法和静态代码块按顺序加载,子类优先。
向下转型new 的其实也是子类的对象,虽然是丢失精度的子类,但是依旧是子类,父类只是匹配的作用。
静态部分只加载一次,第二次只加载属于对象 部分(成员部分,构造方法)。