执行顺序:
1、父类静态块
2、子类静态块
3、父类块
4、父类构造器
5、子类块
6、子类构造器
很基础很简单的知识,但没试过又怎么知道“以为的”是不是正确呢?代码验证:
package com.java.test;
class A {
public A(){
System.out.println("父类A构造器");
}
{System.out.println("父类A块");}
static{System.out.println("父类A静态块");}
}
public class B extends A{
public B(){
System.out.println("子类B构造器");
}
{System.out.println("子类B块");}
static {System.out.println("子类B静态块");}
public static void main(String[] args)
{
new B();
}
}
输出结果: