天天看點

Java - 靜态分派與動态分派

靜态分派

  • 依賴靜态類型 确定方法執行版本的分派[ 判斷參數是什麼類型]。
  • 編譯期發生。
  • 非虛拟機執行。

動态分派

  • 依賴實際類型 确定方法執行版本。[ 判斷實際對象是什麼類型]
  • 向上轉型後調用子類重寫的方法。
  • 運作期(根據實際類型)決定。
  • 動态分派的實作依賴在方法區建立的方法表,如果子類沒有重寫父類的方法,則子類虛方法表中該方法的入口位址與父類指向的相同,為子類重寫的方法的入口位址。