Java 中的静态绑定和动态绑定

2025 年 3 月 23 日 | 阅读时间 2 分钟
static binding and dynamic binding in java

将方法调用连接到方法体称为绑定。

绑定有两种类型

  1. 静态绑定(也称为早期绑定)。
  2. 动态绑定(也称为晚期绑定)。
Static vs. Dynamic Binding in java

理解类型

让我们理解实例的类型。

1) 变量有类型

每个变量都有一个类型,它可以是基本类型和非基本类型。

这里 data 变量是 int 类型。

2) 引用有类型

3) 对象有类型

对象是特定 Java 类的实例,但它也是其超类的实例。

这里 d1 是 Dog 类的实例,但它也是 Animal 的实例。

Java 中的静态绑定

当对象的类型在编译时确定(由编译器)时,称为静态绑定。

如果类中存在私有、final 或静态方法,则存在静态绑定。

静态绑定的例子

Java 中的动态绑定

当对象的类型在运行时确定时,称为动态绑定。

动态绑定的例子

Output:dog is eating...
在上面的例子中,对象的类型不能由编译器确定,因为 Dog 的实例也是 Animal 的实例。所以编译器不知道它的类型,只知道它的基本类型。