zoukankan      html  css  js  c++  java
  • Java对象初始化顺序

    public class Father {
    
        static final String STATIC_FIELD_01 = getFatherField("STATIC_FIELD_01");
    
        private String field01 = getMemberFatherField("field01");
    
        public Father() {
            System.out.println("父类构造方法!");
        }
    
        static {
            System.out.println("父类静态代码块!");
        }
    
        static final String STATIC_FIELD_02 = getFatherField("STATIC_FIELD_02");
    
        static String getFatherField(String str) {
            System.out.println("父类静态成员变量初始化-" + str);
            return str;
        }
    
        {
            System.out.println("父类代码块!");
        }
    
        private String field02 = getMemberFatherField("field02");
    
        String getMemberFatherField(String str) {
            System.out.println("父类成员变量初始化-" + str);
            return str;
        }
    
        static class Son extends Father {
    
            static final String STATIC_FIELD_01 = getSonField("STATIC_FIELD_01");
    
            private String field01 = getMemberSonField("field01");
    
            public Son() {
                System.out.println("子类构造方法!");
            }
    
            static {
                System.out.println("子类静态代码块!");
            }
    
            static final String STATIC_FIELD_02 = getSonField("STATIC_FIELD_02");
    
            static String getSonField(String str) {
                System.out.println("子类静态成员变量初始化-" + str);
                return str;
            }
    
            {
                System.out.println("子类代码块!");
            }
    
            private String field02 = getMemberSonField("field02");
    
            String getMemberSonField(String str) {
                System.out.println("子类成员变量初始化-" + str);
                return str;
            }
        }
    
        public static void main(String[] args) {
           Son son = new Son();
           System.out.println("-----------");
           Son s1 = new Son();
        }
    }

    输出结果

    父类静态成员变量初始化-STATIC_FIELD_01
    父类静态代码块!
    父类静态成员变量初始化-STATIC_FIELD_02
    子类静态成员变量初始化-STATIC_FIELD_01
    子类静态代码块!
    子类静态成员变量初始化-STATIC_FIELD_02
    父类成员变量初始化-field01
    父类代码块!
    父类成员变量初始化-field02
    父类构造方法!
    子类成员变量初始化-field01
    子类代码块!
    子类成员变量初始化-field02
    子类构造方法!
    -----------
    父类成员变量初始化-field01
    父类代码块!
    父类成员变量初始化-field02
    父类构造方法!
    子类成员变量初始化-field01
    子类代码块!
    子类成员变量初始化-field02
    子类构造方法!
  • 相关阅读:
    txtbox取Calendar值
    【Spread Sheet 应用(一)】去掉原有功能键及添加功能键
    【SQLSERVER】存储过程基础
    【SQLSERVER】在存储过程中调用存储过程
    ASP.NET跨页面传值技巧(VB.NET篇)
    【EXCEL】IF...ELSE语句
    VB单元测试
    【VB.NET】窗体之间传值
    【Spread Sheet 应用(二)】常用属性设置
    【SQLSERCER】创建、改变、删除索引
  • 原文地址:https://www.cnblogs.com/hbxZJ/p/15515422.html
Copyright © 2011-2022 走看看