我当前正在为我的一个类做作业,在作业中,我必须用 Java 语法给出 static和 dynamic binding的示例。
我理解静态绑定发生在编译时,动态绑定发生在运行时的基本概念,但我不知道它们实际上是如何工作的。
我在网上找到了一个静态绑定的例子,它给出了这个例子:
public static void callEat(Animal animal) {
System.out.println("Animal is eating");
}
public static void callEat(Dog dog) {
System.out.println("Dog is eating");
}
public static void main(String args[])
{
Animal a = new Dog();
callEat(a);
}
而且,这将打印“动物是吃”,因为 对 callEat
的调用使用静态绑定,但我不确定,因为 为什么这被认为是静态绑定。
So far none of the sources I've seen have managed to explain this in a way that I can follow.