Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - 靜態繫結



繫結是一種在方法呼叫和方法實際實現之間建立連結的機制。根據 Java 中的多型概念物件可以具有許多不同的形式。物件形式可以在編譯時和執行時解析。

Java 靜態繫結

靜態繫結是指在編譯時解析方法呼叫和方法實現之間連結的過程。靜態繫結也稱為編譯時繫結早期繫結

Java 靜態繫結的特性

  • 連結 - 方法呼叫和方法實現之間的連結在編譯時解析。

  • 解析機制 - 靜態繫結使用類的型別和欄位來解析繫結。

  • 示例 - 方法過載是靜態繫結的示例。

  • 方法型別 - 私有、final 和靜態 方法以及 變數使用靜態繫結。

Java 靜態繫結的示例

在這個例子中,我們建立了一個 Calculator 類,它有兩個同名但引數不同的靜態方法,分別用於新增兩個和三個 int 值。在 main() 方法中,我們呼叫這些方法並列印結果。根據傳遞的引數數量,編譯器使用靜態繫結決定要呼叫哪個方法,並相應地列印結果。

package com.tutorialspoint;

class Calculator{
   public static int add(int a, int b){
      return a + b;
   }
   public static int add(int a, int b, int c){
      return a + b + c;
   }
}

public class Tester {
   public static void main(String args[]){
      System.out.println(Calculator.add(20, 40));
      System.out.println(Calculator.add(40, 50, 60));
   }
}

輸出

60
150

Java 靜態繫結:更多示例

示例 1

在這個例子中,我們建立了一個 Calculator 類,它有兩個同名但引數不同的非靜態方法,分別用於新增兩個和三個 int 值。在 main() 方法中,我們使用 Calculator 類的物件呼叫這些方法並列印結果。根據傳遞的引數數量,編譯器使用靜態繫結決定要呼叫哪個方法,並相應地列印結果。

package com.tutorialspoint;

class Calculator{
   public int add(int a, int b){
      return a + b;
   }
   public int add(int a, int b, int c){
      return a + b + c;
   }
}

public class Tester {
   public static void main(String args[]){
      Calculator calculator = new Calculator();   
      System.out.println(calculator.add(20, 40));
      System.out.println(calculator.add(40, 50, 60));
   }
}

輸出

60
150

示例 2

在這個例子中,我們建立了一個 Calculator 類,它有兩個同名但引數型別不同的非靜態方法,分別用於新增兩個 int 值和兩個 double 值。在 main() 方法中,我們使用 Calculator 類的物件呼叫這些方法並列印結果。根據傳遞的引數型別,編譯器使用靜態繫結決定要呼叫哪個方法,並相應地列印結果。

package com.tutorialspoint;

class Calculator{
   public int add(int a, int b){
      return a + b;
   }
   public double add(double a, double b){
      return a + b;
   }
}

public class Tester {
   public static void main(String args[]){
      Calculator calculator = new Calculator();   
      System.out.println(calculator.add(20, 40));
      System.out.println(calculator.add(20.0, 40.0));
   }
}

輸出

60
60.0
廣告