初始化父类static代码(多个static时顺序进行)初始化子类static代码(多个static时顺序进行)初始化父类构造代码块,然后执行构造函数初始化子类构造代码块,然后执行构造函数
/**
* @Description:
* @author mymilkbottles xz_mymilkbottles@163.com
* @date 2017年5月4日 上午10:47:05
* @version V1.0
*/
package Java20170504;
/**
* @Description:
* @author mymilkbottles xz_mymilkbottles@163.com
* @date 2017年5月4日 上午10:47:05
*
*/
public class Son extends parent{
static{
System.out.println(
"son static 1");
}
public static String str=
"son";
{
System.out.println(
"son constructor block1");
}
public Son() {
System.out.println(
"son constructor");
}
{
System.out.println(
"son constructor block2");
}
public static void main(String[] args) {
new Son();
System.out.println(
"finish");
}
static{
System.out.println(
"son static 2");
}
}
class parent{
static{
System.out.println(
"parent static 1");
}
public static String str=
"2";
{
System.out.println(
"parent constructor block1");
}
public parent() {
System.out.println(
"parent constructor");
}
static{
System.out.println(
"parent static 2");
}
{
System.out.println(
"parent constructor block2");
}
}
执行结果:
parent
static 1
parent
static 2
son
static 1
son
static 2
parent
constructor block1
parent constructor block2
parent constructor
son constructor block1
son constructor block2
son constructor
finish