Java 类初始化顺序为
1、父类静态字段初始化
2、子类静态字段初始化
3、父类普通字段初始化
4、父类构造器执行
5、子类普通字段初始化
6、 子类构造器执行
1、父类静态字段初始化
2、子类静态字段初始化
3、父类普通字段初始化
4、父类构造器执行
5、子类普通字段初始化
6、 子类构造器执行
点击(此处)折叠或打开
- import java.util.Random;
-
- public class InitOrder {
- public static int getInt(String info){
- System.out.println(info);
- Random random = new Random(47);
- return random.nextInt();
- }
- public static void main(String [] args){
- new Son();
- // 关注 Father 的 filed 与 Son 的sonFiled的初始化
- }
- }
-
- class Son extends Father{
- private int sonFiled = InitOrder.getInt("子类普通字段初始化");
- private static int sonStaticFiled = InitOrder.getInt("子类静态字段初始化");
- public Son(){
- this.sonFiled = InitOrder.getInt("子类构造器执行");
- }
- public int getSonFiled() {
- return sonFiled;
- }
- public void setSonFiled(int sonFiled) {
- this.sonFiled = sonFiled;
- }
- public static int getSonStaticFiled() {
- return sonStaticFiled;
- }
- public static void setSonStaticFiled(int sonStaticFiled) {
- Son.sonStaticFiled = sonStaticFiled;
- }
-
-
- }
- class Father{
- private int filed = InitOrder.getInt("父类普通字段初始化");
- private static int staticFiled = InitOrder.getInt("父类静态字段初始化");
- public Father(){
- this.filed = InitOrder.getInt("父类构造器执行");
- }
- public int getFiled() {
- return filed;
- }
- public void setFiled(int filed) {
- this.filed = filed;
- }
- public static int getStaticFiled() {
- return staticFiled;
- }
- public static void setStaticFiled(int staticFiled) {
- Father.staticFiled = staticFiled;
- }
-
- }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30066956/viewspace-1773078/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30066956/viewspace-1773078/