下面是一个简单的继承,来查看代码的执行顺序:
package test;
class Person{
static{
System.out.println("父类的静态块");
}
Person(){
System.out.println("父类的构造方法");
}
{
System.out.println("父类的普通方法");
}
}
class Student extends Person{
static{
System.out.println("子类的静态块");
}
Student(){
System.out.println("子类的构造方法");
}
{
System.out.println("子类的普通方法");
}
}
public class Test {
public static void main(String[] args) {
Student s=new Student();
}
}
运行结果为:
可以看出代码的执行顺序是:
父类静态块中方法----子类静态块中方法----父类的普通方法---
父类的构造方法---子类的普通方法---子类的构造方法