• java 静态代码块、构造代码块、构造函数调用顺序


    检验一下java的静态代码块、构造代码块、构造函数的调用顺序问题。

    父类

    public class Father {
        
        private int tag = 1;
    
        public static String flag = "father";
    
        public Father() {
            System.out.println("construct father");
        }
    
        static {
    
            System.out.println("staic father block");
    
        }
        {
            System.out.println("father block");
    
        }
        public int getTag() {
            return tag;
        }
        public void setTag(int tag) {
            this.tag = tag;
        }
    
    }

    子类

    public class Sun extends Father{
        
        private int tag = 10;
        public static String flag = "sun";
        
        public Sun(){
            System.out.println("construct sun");
        }
        
        static {
            
            System.out.println("static sun block ");
        }
        
        {
            System.out.println("sun block");
        }
    
        public int getTag() {
            return tag;
        }
    
        public void setTag(int tag) {
            this.tag = tag;
        }
    
    }

    父类运行结果图:

    结论,静态代码块 > 构造代码块 > 构造函数

    子类运行结果图:

    结论,父静态 > 子静态 > 父构造代码块 > 父构造函数 > 子构造代码块 > 子构造函数

    简单点记录就是 静态  > 父类 > 子类

    原创博文,未经许可不得转载,转载请注明出处。
  • 相关阅读:
    Surface RT2装Win10出现 "INF不包含数字签名信息"【已解决】
    树上倍增LCA模版
    sql注入
    python 调用 telnet
    ss
    【总结氵】2021.02.27 省选模拟
    2021.03.13省选模拟 抽卡(card)
    树链剖分之重链剖分 模板
    多项式求逆 模板
    NTT快速数论变换 模板
  • 原文地址:https://www.cnblogs.com/Think-007/p/7569818.html
Copyright © 2020-2023  润新知