一道题说明java初始化顺序
之前,在公司内部给大家做了java培训后,要考一考大家,关于初始化方面,想了一个综合涵盖继承、静态等各个方面的代码。
题目
说出下面程序运行结果:
class Language {
static {
System.out.println("language static block");
}
{
System.out.println("language block");
}
public Language() {
System.out.println("language constructor");
}
public Language(String name) {
System.out.println(name);
}
}
public class Python extends Language {
private String name;
public Python(String name) {
this.name = name;
System.out.println("python constructor");
System.out.println(this.name);
}
{
System.out.println("python block");
}
static {
System.out.println("python static block");
}
public static void main(String[] args) {
new Python("hello python");
}
答案
language static block
python static block
language block
language constructor
python block
python constructor
hello python