DEV Community

Métodos sobrepostos dão suporte ao polimorfismo

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.

Image description

Image description

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.

Top comments (0)