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:
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.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3