您的位置:首页 > 编程语言 > Java开发

Java学习之初始化块加载顺序

2016-08-08 08:59 246 查看
对于具有父子继承关系的初始化块和构造函数以及静态成员的加载顺序是如何的呢?

一个demo看穿一切:

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的构造函数");
}
}

class Leaf extends Mid{
static int a = 20;
static{
a = 10;
System.out.println("这是Leaf的静态初始化块");
}
{
System.out.println("这是Leaf的普通初始化块");
}

public Leaf(){
System.out.println("这是Leaf的构造函数");
System.out.println("a = "+a);
}
public static void main(String []args){
Leaf leaf = new Leaf();
}
}




总结一下就是:从上到下,一静到底,再上再下,先初始再构造。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 继承 初始化块