Java父子类中静态代码块与构造函数的执行顺序
基类:
public class BaseClass {
static {
System.out.println("父类-->静态代码块");
}
public BaseClass() {
System.out.println("父类-->构造函数");
}
{
System.out.println("父类-->非静态代码块");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new SubClass();
}
}
子类:
public class SubClass extends BaseClass {
static {
System.out.println("子类-->静态代码块");
}
{
System.out.println("子类-->非静态代码块");
}
public SubClass() {
System.out.println("子类-->构造函数");
}
}
执行顺序:
父类-->静态代码块
子类-->静态代码块
父类-->非静态代码块
父类-->构造函数
子类-->非静态代码块
子类-->构造函数