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
广告