1,静态变量、静态代码块、变量、普通代码块、mian方法、构造函数的执行顺序是:(静态变量、静态代码块)> main方法 >(变量、普通代码块)>构造函数。
2,如果子类调用了父类,那么执行顺序是:(父类静态变量、父类静态代码块)>(子类静态变量、子类静态代码块)> main方法 >(父类变量、父类代码块)> 父类构造方法 >(子类变量、子类代码块)> 子类构造方法
3,子类继承父类简单举例说明:也就是说此时的运行顺序为:
父类静态块
自身静态块
父类块
父类构造器
自身块
自身构造器
/**
* 测试父类和子类代码执行顺序
*/
public class Father1 {
/**
* 父类静态代码块
*/
static {
System.out.println("父类1静态代码块");
}
/**
* 父类块
*/
{
System.out.println("父1类块");
}
/**
* 父类构造方法
*/
public Father1(){
System.out.println("父1类构造方法");
}
}
子类代码:
/**
* 测试父类和子类代码执行顺序
*/