zoukankan      html  css  js  c++  java
  • static和构造函数初始化顺序


    abstract class demo{
        public demo() {}
        protected void a() {
            System.out.println("I am parents!");
        }
    }
    
    class demoChild extends demo{
        public demoChild() {
            System.out.println("Begin from here");
            a();
            String a  ="hellp";
        }
        static {
            //static初始化优先于构造函数
            System.out.println("Begin/....");
        }
    }
    
    public class Elvis {
        private static final Elvis INSTANCE = new Elvis();
        private Elvis() {}
        public static Elvis getInstance() {
            new demoChild();
            return INSTANCE;
        }
        public static void main(String[] args) {
            (new Elvis()).getInstance();
        }
    }

    结果为:

    可以看书static标记的位置初始化时优先于构造函数。

  • 相关阅读:
    服务器响应状态码
    30
    29
    Java中参数始终是按值传递
    浅析 Java 中的继承和重写
    25
    super 关键字
    24
    Overriding
    23
  • 原文地址:https://www.cnblogs.com/mituzhifan-/p/9069664.html
Copyright © 2011-2022 走看看