Este artigo apresenta uma visão geral completa dos tipos de polimorfismo, conforme listado abaixo:
Então vamos começar!
O que é polimorfismo em Java
A palavra polimorfismo é uma combinação de duas palavras gregas poli significa muitos e Morphs significa formas, portanto, combinadamente a palavra polimorfismo significa muitos/múltiplos formulários. O polimorfismo nos permite executar uma tarefa específica de várias maneiras
Exemplo
Vamos considerar os exemplos listados abaixo do mundo real para entender o conceito de polimorfismo:
Sons de animais: Rugidos de leão, latidos de cachorro, vizinhos de cavalo e assim por diante.
Agora, vamos entender o conceito acima, em termos de programação Java, neste exemplo, o Animais é uma aula, e "sons()" é o seu método:
Aqui Animais é uma classe geral que não pode ser restrita com apenas um som como um rugido, ou casca, etc. Portanto, uma classe terá uma implementação genérica que pode ser estendida pelas outras classes.
Além disso, Leão, Cachorro, e Cavalo (subclasses) pode estender as propriedades da classe pai Animal. As classes infantis herdarão a função de sua classe pai e podem substituir a implementação dessa função.
Portanto, o polimorfismo em Java permite que você utilize o mesmo método para executar várias funcionalidades. Em Java, o polimorfismo pode ser alcançado por meio de tempo de compilação ou tempo de execução.
Polimorfismo estático/de tempo de compilação em java
No polimorfismo em tempo de compilação, os objetos do CALSS são limitados com os métodos em tempo de compilação. O polimorfismo em tempo de compilação é tratado pelo compilador e suporta o conceito de sobrecarga de método.
A sobrecarga do método no polimorfismo em tempo de compilação permite que uma classe crie vários métodos com o mesmo nome, mas implementações diferentes em termos de parâmetros. E existem algumas regras para esses parâmetros, conforme listado abaixo:
Podemos criar vários métodos com o mesmo nome, mas com uma sequência/ordem diferente de parâmetros.
Podemos criar mais de um método com o mesmo nome, mas com diferentes tipos de dados de parâmetros:
Podemos criar vários métodos com o mesmo nome, mas com um número diferente de parâmetros.
Vamos considerar um exemplo para a profunda compreensão do polimorfismo no tempo de compilação:
Exemplo
Neste exemplo, criamos duas classes:
Multiplicação.Java
O Multiplicação A classe cria três métodos com o mesmo nome "produtos()", O primeiro método leva dois valores inteiros, o segundo leva dois valores duplos e o terceiro leva três valores inteiros:
pacote principal;A captura de tela do código acima é assim:
Principal.Java
Dentro do Principal classe, criamos o objeto da classe de multiplicação e chamamos os três métodos do Multiplicação aula:
pacote principal;O código completo do Principal A classe é mostrada na figura a seguir:
A saída será assim:
Da saída acima, observamos que:
Quando passamos pelos dois int valores então o produtos método com dois int Parâmetros são executados.
Quando passamos pelos três int valores então o produtos método com três int Parâmetros são executados.
Da mesma forma, quando passamos pelos dois dobro valores então o produtos método com dois dobro Parâmetros são executados.
Polimorfismo dinâmico/de tempo de execução
Em tempo de execução Polimorfismo, os objetos são delimitados com os métodos em tempo de execução (ligação dinâmica). O polimorfismo dinâmico ou de tempo de execução apóia o conceito de Método substituindo.
Vamos dar uma olhada no exemplo abaixo para o profundo entendimento do polimorfismo de tempo de execução.
Exemplo
O trecho de código abaixo cria três classes: Pessoa, funcionário, e Departamento, o Pessoa A classe é uma classe pai, a Funcionário A classe se estende Pessoa classe e Departamento A classe entra Funcionário aula.
classe de classeAs aulas infantis estende o imprimir() método de suas classes pais e eles também têm sua própria implementação desse método print (). E dentro do método principal, criamos o objeto de cada classe e chamamos o imprimir() método com o respectivo objeto de classe. O código e saída completos são fornecidos na captura de tela a seguir:
A saída acima verifica que, quando chamamos as funções de impressão com cada objeto de classe infantil, eles substituem a implementação da função Print Print ().
Conclusão
O polimorfismo nos permite criar vários métodos com o mesmo nome, mas com diferentes implementações nas classes de pais e filhos. Pode ser alcançado em tempo de compilação, que suporta o conceito de sobrecarga de métodos ou em tempo de execução, que suporta o conceito de substituir. Este artigo apresenta uma visão geral detalhada do tempo de execução e do polimorfismo no tempo de compilação e explica o que é o polimorfismo, seus tipos e regras para implementar cada tipo.