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标记的位置初始化时优先于构造函数。