今天看代码的时候发现自己对于继承中方法的执行顺序不太清楚,查了下资料,然后又写了个测试类。代码如下,其中包含了重写,子类重写父类的方法时,会覆盖父类中的方法,父类中的该方法不会被执行。
public class Methods {
static {
System.out.println("父类的static块");
}
{
System.out.println("父类的代码块");
}
Methods(){
System.out.println("父类的构造方法");
}
void test() {
System.out.println("父类的普通方法");
}
public static void main(String[] args) {
SubClass sc = new SubClass();
sc.test();
}
}
class SubClass extends Methods{
static {
System.out.println("子类的static块");
}
SubClass(){
System.out.println("子类的构造方法");
}
{
System.out.println("子类的代码块");
}
void test() {
System.out.println("子类的普通方法");
}
}
执行结果为:
父类的static块
子类的static块
父类的代码块
父类的构造方法
子类的代码块
子类的构造方法
子类的普通方法