驗證子類繼承父類中的static模塊、構造方法執行順序
驗證java多態性
1、父類代碼
public abstract class ParentClass {
static{
System.out.println("父類的執行static模塊化內容");
}
public ParentClass() {
System.out.println("父類的構造函數");
dealParent();
validate();
}
public void dealParent(){
System.out.println("處理父類中構成函數的調用方法");
}
abstract void validate();
}
2、子類代碼
package com.zhai.classorder;
public class ChildrenClass extends ParentClass {
static{
System.out.println("子類的static內容");
}
public ChildrenClass(){
System.out.println("子類的構造函數");
}
@Override
void validate() {
System.out.println("子類重寫父類方法");
}
}
3、測試類
package com.zhai.enter;
import com.zhai.classorder.ChildrenClass;
public class MainClass {
public static void main(String[] args) {
new ChildrenClass();
}
}
4、結果
5、結果分析
1、父類static–>子類static–>父類構造方法–>子類構造方法
2、java多態性:若父類調用自身的抽象方法,會往下找對應的子類(誰觸發調用父類)的重寫方法