什么是动态绑定
时间: 2023-07-10 08:11:09 浏览: 46
动态绑定(Dynamic Binding),也称为运行时绑定(Run-time Binding),是指在程序运行时,根据对象的实际类型来调用相应的方法,而不是根据变量的声明类型来调用方法。动态绑定是面向对象程序设计中的一个重要特性,它使得程序能够更加灵活、可扩展。
在 Java 中,动态绑定是通过多态来实现的。当一个对象被声明为一个父类或接口的类型,但实际上它是一个子类的实例时,我们可以在运行时调用子类中的方法,而不是父类中的方法。例如:
```
public interface Animal {
void makeSound();
}
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("汪汪汪!");
}
}
public class Cat implements Animal {
@Override
public void makeSound() {
System.out.println("喵喵喵!");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.makeSound(); // 输出:汪汪汪!
animal2.makeSound(); // 输出:喵喵喵!
}
}
```
在上面的例子中,我们声明了两个 `Animal` 类型的变量 `animal1` 和 `animal2`,但它们分别指向了 `Dog` 和 `Cat` 类型的对象。当我们调用它们的 `makeSound()` 方法时,实际上会调用子类中的方法,而不是父类中的方法。这就是动态绑定的实现方式。