Métodos sobrepostos dão suporte ao polimorfismo
Java para Iniciantes (Oracle)
Posted on September 17, 2024
Sobreposição de Métodos:
Não é apenas uma questão de nomenclatura, mas uma característica fundamental em Java.
Baseia-se no conceito de despacho dinâmico de métodos.
Despacho Dinâmico de Métodos:
É o mecanismo pelo qual a chamada a um método sobreposto é resolvida no tempo de execução, não no tempo de compilação.
Permite a implementação do polimorfismo em Java.
Como Funciona:
Uma variável de referência da superclasse pode referenciar um objeto da subclasse.
Quando um método sobreposto é chamado através de uma referência da superclasse, a versão do método a ser executada é determinada com base no tipo do objeto no momento da chamada.
Portanto, a escolha do método a ser executado ocorre no tempo de execução.
Importância:
O tipo do objeto referenciado (e não o tipo da variável de referência) determina qual versão do método sobreposto será executada.
Isso permite que diferentes tipos de objetos, referenciados por uma variável de referência da superclasse, possam chamar versões distintas do método sobreposto.
Estrutura do Programa:
Superclasse: Sup, com o método who().
Subclasses: Sub1 e Sub2, ambas sobrepõem o método who().
Execução no main():
Criação de objetos superOb (tipo Sup), subOb1 (tipo Sub1), e subOb2 (tipo Sub2).
Uma variável de referência supRef do tipo Sup é usada para referenciar os diferentes objetos.
Comportamento:
- A chamada a supRef.who() determina a versão do método a ser executado com base no tipo do objeto referenciado no momento da chamada, não no tipo da variável de referência supRef.
Saída do Programa:
Dependendo do tipo do objeto referenciado (superOb, subOb1, ou subOb2), a versão correspondente do método who() é chamada e exibida.
Isso demonstra o conceito de despacho dinâmico, onde o método executado é decidido em tempo de execução, permitindo a implementação do polimorfismo.
Posted on September 17, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.