Java初始化块与构造器执行顺序有不明白的地方

AHU_Tree 2014-09-14 11:27:44
class Root
{
static{
System.out.println("Root的静态初始化块");
}

{
System.out.println("Root的普通初始化块");
}

public Root()
{
System.out.println("Root的无参数的构造器");
}
}

class Mid extends Root
{
static{
System.out.println("Mid的静态初始化块");
}

{
System.out.println("Mid的普通初始化块");
}

public Mid()
{
System.out.println("Mid的无参数的构造器");
}
public Mid(String msg)
{
this();
System.out.println("Mid的带参数构造器,其参数值: " + msg);
}
}

class Leaf extends Mid
{
static{
System.out.println("Leaf的静态初始化块");
}

{
System.out.println("Leaf的普通初始块");
}

public Leaf()
{
super("疯狂Java讲义");
System.out.println("执行Leaf的构造器");
}
}

public class Test
{
public static void main(String[] args)
{
new Leaf();
new Leaf();
}
}


当静态初始化块执行完后,继续从顶层执行普通初始化块和构造器,在Mid类中为什么重载的构造器和默认构造器会依次执行,从哪里来的参数呢?这个执行顺序不是很明白
...全文
69 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧