• java中static程序块和构造函数的执行情况


    参考博文:http://blog.csdn.net/gxf212/article/details/3510009

    class Base {
        static int a = 1;
    
        public Base() {
            System.out.println(" 55555");
        }
    
        static {
            System.out.println("Static Base");
        }
    
        static void method() {
            System.out.println("Base");
        }
    }
    
    class Sub extends Base {
        public Sub() {
            System.out.println(" 44444");
        }
    
        static int b = 2;
        static {
            System.out.println("Static Sub");
        }
    
    }
    
    public class Traversc {
        public static void main(String[] args) {
            Sub sub = new Sub();//先执行父类的构造函数,再执行子类的构造函数
            Sub.method();//调用static程序段,先于构造函数执行,且永远只执行一次
            //Sub.method();
            //System.out.println("a=" + Sub.b);
        }
    }

    总结:

    1.构造函数,父类先执行然后再执行子类

    2.static程序块先于构造函数执行,切只执行一次

    3.当只单独调用static method方法时,子类的static块和所有的构造函数都不会被执行,只会执行父类的static块

  • 相关阅读:
    设计模式总结
    设计模式之工厂
    C#
    UML画图总结
    UML视频总结
    类图
    读取文件信息
    HMAC算法加密
    SHA_1计算消息摘要
    获取指定长度的随机字符串
  • 原文地址:https://www.cnblogs.com/middlesummer/p/3715998.html
Copyright © 2020-2023  润新知