Sobes.tech
Junior — Middle

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.