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.