Explique o princípio de roteamento dinâmico de chamadas de métodos na programação orientada a objetos.
sobes.tech IA
Resposta da IA
O encaminhamento dinâmico de chamadas de métodos (dynamic dispatch) é um mecanismo na programação orientada a objetos que permite determinar qual a implementação do método chamar, com base no tipo real do objeto em tempo de execução, e não em tempo de compilação.
Em Java, isso é alcançado através de métodos virtuais: se um método é declarado na classe base e sobrescrito numa subclasse, a chamada através de uma referência de tipo base invocará a versão do método correspondente ao tipo real do objeto.
Exemplo:
class Animal {
void sound() {
System.out.println("Algum som");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Latido");
}
}
Animal a = new Dog();
a.sound(); // Vai imprimir "Latido", mesmo que o tipo da variável seja Animal
Desta forma, o encaminhamento dinâmico permite implementar o polimorfismo, tornando o comportamento do programa flexível e extensível.
Por baixo do capô, a JVM usa tabelas de métodos virtuais (vtable) para determinar rapidamente a implementação correta em tempo de execução.