zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }

    父类运行结果图:

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

    子类运行结果图:

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

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

    原创博文,未经许可不得转载,转载请注明出处。
  • 相关阅读:
    Configure文件学习
    实用文章:常用开源协议详细解析
    openwrt的sysupgrade和factory固件的区别
    Linux块设备和字符设备
    eclipse代码补全按键修改成Tab
    Hadoop环境搭载
    比特币中难度调整
    共识机制
    比特币交易本质--UTXO(Unspent Transaction Output)
    多重签名
  • 原文地址:https://www.cnblogs.com/Think-007/p/7569818.html
Copyright © 2011-2022 走看看