首先我们看一个案例
public class Test extends Base {static {System.out.println("test static");}public Test() {System.out.println("test control");}public static void main(String[] args) {new Test();}
}
class Base{static {System.out.println("base static");}public Base() {System.out.println("base control");}
}

执行过程:
首先计算机对程序进行扫描。
然后程序加载到内存当中,才有main方法入栈static表达。
在以上案例中,Test作为子类继承了Base(父类)的方法。首先将父类加载到方法区当中。
子类对象可以使用父类对象的方法,因此父类对象的创建一定在子类之前(先输出base control)。