Java 中的靜態繫結和動態繫結的區別


繫結是建立方法呼叫和方法實際實現之間的連結的一種機制。根據 Java 中的多型概念,一個物件可以有許多不同的形式。物件的各個形式可以在編譯時和執行時解決。如果在編譯時確定方法呼叫和方法實現之間的連結,那麼我們稱之為靜態繫結。如果在執行時確定,那麼就叫做動態繫結。動態繫結使用物件來解決繫結,但靜態繫結使用類和欄位的型別。 

序號
要點
靜態繫結
動態繫結

1

基本 

在編譯時解決 

在執行時解決 

2

        解決機制 

 靜態繫結使用類和欄位的型別

動態繫結使用物件來解決繫結 

3

示例 

過載是靜態繫結的一個示例 

方法覆蓋是動態繫結的示例 

4.

方法的型別 

私有的、final 和 static 方法和變數使用靜態繫結

虛方法使用動態繫結 

靜態和動態繫結的示例

public class FastFood {
   public void create() {
      System.out.println("Creating in FastFood class");
   }
}
public class Pizza extends FastFood {
   public void create() {
      System.out.println("Creating in Pizza class");
   }
}
public class Main {
   public static void main(String[] args) {
      FastFood fastFood= new FastFood();
      fastFood.create();
      //Dynamic binding
      FastFood pza= new Pizza();
      pza.create();
   }
}

更新日期:2020 年 1 月 21 日

1.4 萬+ 次瀏覽

開始你的職業生涯職業生涯

完成課程即可獲得認證

開始
廣告