1、Java语句的执行结构
a、执行父类的静态代码块
b、执行子的静态代码块
c、如果父类有非静态代码块,则执行,反之不执行。
d、执行父类的构造方法
e、如果子类有非静态代码块,则执行,反之不执行。
f、执行子类的构造方法
总结:父类静态代码块 > 子类静态代码块 > 父类非静态代码块 > 父类构造方法 > 子类非静态代码块 > 子类构造方法
例子:
public class Demo {
static {
System.out.println("1 " );
}
public static void main(String[] args) {
System.out.println("2");
new Child();
}
}
class Parent{
static {
System.out.println("3 " );
}
{
System.out.println("5 " );
}
public Parent() {
System.out.println("6 " );
}
构
}
class Child extends Parent{
static{
System.out.println("4 " );
}
{
System.out.println("7 " );
}
public Child(){
System.out.println("8 " );
上述程序中输出来的结果顺序就是12345678.
其中注意最先执行的是主函数类中的静态代码块,然后就是主函数中的方法,最后便是按照上述的执行顺序执行。