Vs estático. Ligação Dinâmica em Java

Eu estou atualmente fazendo uma tarefa para uma das minhas classes, e nela, eu tenho que dar exemplos, usando a sintaxe Java, deestático eligação dinâmica.

Eu entendo o conceito básico, que ligação estática acontece em tempo de compilação e ligação dinâmica acontece em tempo de execução, mas não consigo descobrir como eles realmente funcionam especificamente.

Eu encontrei um exemplo de ligação estática on-line que dá este exemplo:

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

E que isso imprimiria "animal está comendo" porquea chamada paracallEat usa ligação estática, mas não tenho certeza sobreporque isso é considerado ligação estática.

Até agora, nenhuma das fontes que vi conseguiu explicar isso de uma forma que eu possa seguir.

questionAnswers(7)

yourAnswerToTheQuestion