Estática vs. Enlace dinámico en Java

Actualmente estoy haciendo una tarea para una de mis clases, y en ella, tengo que dar ejemplos, usando la sintaxis Java, deestático yenlace dinámico.

Entiendo el concepto básico, que el enlace estático ocurre en tiempo de compilación y el enlace dinámico ocurre en tiempo de ejecución, pero no puedo entender cómo funcionan específicamente.

Encontré un ejemplo de enlace estático en línea que da este ejemplo:

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);
}

Y que esto imprimiría "el animal está comiendo" porquela llamada acallEat utiliza enlace estático, pero no estoy seguro depor qué Esto se considera enlace estático.

Hasta ahora, ninguna de las fuentes que he visto ha logrado explicar esto de una manera que pueda seguir.

Respuestas a la pregunta(7)

Su respuesta a la pregunta