问题描述
classRoot{static{System.out.println("Root的静态初始化块");}{System.out.println("Root的普通初始化块");}publicRoot(){System.out.println("Root的无参数的构造器");}}classMidextendsRoot{static{System.out.println("Mid的静态初始化块");}{System.out.println("Mid的普通初始化块");}publicMid(){System.out.println("Mid的无参数的构造器");}publicMid(Stringmsg){this();System.out.println("Mid的带参数构造器,其参数值:"+msg);}}classLeafextendsMid{static{System.out.println("Leaf的静态初始化块");}{System.out.println("Leaf的普通初始块");}publicLeaf(){super("疯狂Java讲义");System.out.println("执行Leaf的构造器");}}publicclassTest{publicstaticvoidmain(String[]args){newLeaf();newLeaf();}}
当静态初始化块执行完后,继续从顶层执行普通初始化块和构造器,在Mid类中为什么重载的构造器和默认构造器会依次执行,从哪里来的参数呢?这个执行顺序不是很明白
时间: 2025-01-06 00:25:55