Java 类初始化顺序
总的来说:
父类静态代码块->子类静态代码块->子类main()方法->父类构造块->父类构造方法->子类构造块->子类构造方法
注意,就算是静态的方法也需要调用才能使用,初始化只涉及到属性和构造块、构造方法,不涉及到一般的方法。
package com.tonyluis;
class superClass {
public superClass() {
System.out.println("构造方法");
}
{
System.out.println("构造块");
}
static {
System.out.println("静态方法块");
}
}
public class Test extends superClass {
public static void main(String args[]) {
System.out.println("Test main");
//Test test = new Test();
}
public Test() {
System.out.println("Test构造方法");
}
{
System.out.println("Test构造块");
}
static {
System.out.println("Test静态方法块");
}
}
输出:
静态方法块
Test静态方法块
Test main
取消掉main()方法的注释,输出
静态方法块
Test静态方法块
Test main
构造块
构造方法
Test构造块
Test构造方法

浙公网安备 33010602011771号