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
    子类构造方法!
  • 相关阅读:
    spectrogram函数做短时傅里叶分析
    (转) 经典功率谱估计及Matlab仿真
    matlab和C语言实现最小二乘法
    Matlab周期图法使用FFT实现
    vs配置SP++3.0
    VS2015调用matlab Plot函数
    elasticsearch配置文件解析
    elasticsearch.yml
    elasticsearch 动态映射
    elasticsearch _settings
  • 原文地址:https://www.cnblogs.com/hbxZJ/p/15515422.html
Copyright © 2011-2022 走看看