如果 Java 没有显式的继承类(只继承了 Object 类),那么 Java 类中的初始化顺序为 静态 > 构造方法 > 普通方法。
如果 Java 使用了显式继承,那么 Java 类中的初始化顺序为 父类静态 > 父类构造方法 > 父类普通方法 > 子类静态 > 子类构造方法 > 子类普通方法。
Father.java
package homework.practice;
/**
* @author liyanan
* @date 2019/12/29 17:48
*/
public class Father {
static {
System.out.println("父类静态代码块");
}
public Father() {
System.out.println("父类无参构造方法");
}
public void sleep() {
System.out.println("父类 sleep 方法");
}
}
Children.java
package homework.practice;
/**
* @author liyanan
* @date 2019/12/29 17:49
*/
public class Children extends Father {
static {
System.out.println("子类静态代码块");
}
public Children() {
//super();
System.out.println("子类无参构造方法");
super.sleep();
}
@Override
public void sleep() {
System.out.println("子类 sleep 方法");
}
public static void main(String[] args) {
new Children().sleep();
}
}
程序的运行结果为:
父类静态代码块
子类静态代码块
父类无参构造方法
子类无参构造方法
父类 sleep 方法
子类 sleep 方法