1、Java类中静态语句块、构造语句块以及构造函数的执行顺序
public class Test {
?
public Test() {
System.out.println("A");
}
?
?
static{
System.out.println("C");
}
?
{
System.out.println("B");
}
?
?
?
public static void main(String[] args) {
new Test();
}
}
该程序输出的结果为:CBA
由此可见他们三者的执行顺序如下:静态语句块,构造语句块,构造函数
?
2、父类和之类构造方法的调用顺序问题
class People { String name; public People() { System.out.print(1); } public People(String name) { System.out.print(2); this.name = name; } } class Child extends People { People father; public Child(String name) { System.out.print(3); this.name = name; father = new People(name + ":F"); } public Child() { System.out.print(4); } } new Child("William");输出结果为:132 由此可见:默认调用父类无参的构造函数
原文:http://wuhoujian322.iteye.com/blog/2311501