Introdução ao polimorfismo

Polimorfismo é o conceito com o qual a ação única de diferentes maneiras pode ser realizada. É derivado de duas palavras gregas, isto é, poli e morfos. "Poli" significa muitos e "morphs" significa formas. A partir de agora, o polimorfismo implica muitas formas. Na programação orientada a objetos, pode ser definida como a capacidade da linguagem de programação de processar objetos de maneira diferente, dependendo da classe ou do tipo de dados. Basicamente, podemos defini-lo como a capacidade das classes derivadas redefinirem métodos.

Compreensão

Os dois tipos de polimorfismo são polimorfismo em tempo de compilação e polimorfismo em tempo de execução. O polimorfismo em tempo de compilação é realizado por sobrecarga de método e o polimorfismo de tempo de execução por substituição de método. O polimorfismo de tempo de execução, também chamado Dynamic Method Dispatch, é um processo em que a chamada para um método substituído é resolvida no tempo de execução, apesar do tempo de compilação. Aqui, o método substituído é chamado por meio de uma variável de referência de uma classe pai. Além disso, o polimorfismo de tempo de execução não pode ser alcançado pelos membros dos dados.

Como o polimorfismo facilita o trabalho?

É uma característica de programação orientada a objetos. Usando o polimorfismo, uma classe pode exibir diferentes funcionalidades, mesmo quando possui uma interface comum. Assim, podemos dizer que esse longo prazo explica um conceito básico. O que é digno de nota sobre o polimorfismo é que todo o código de trabalho em várias classes não precisa saber sobre a classe que está sendo usada por ela, pois o modo de uso é o mesmo.

É uma característica de programação orientada a objetos. Usando o polimorfismo, uma classe pode exibir diferentes funcionalidades, mesmo quando possui uma interface comum. Assim, podemos dizer que esse longo prazo explica um conceito muito básico. O que é digno de nota sobre o polimorfismo é que todo o código de trabalho em várias classes não precisa saber sobre a classe que está sendo usada por ela, pois o modo de uso é o mesmo.

Considere um cenário do mundo real para o polimorfismo. Veja o exemplo de um botão. Sabemos que, ao aplicar alguma pressão, podemos clicar no botão, mas não sabemos o resultado de pressionar o botão ou a referência de seu uso. O ponto aqui a ser observado é que, de qualquer forma, o resultado não afetaria a maneira como é usado.

Portanto, o objetivo básico do polimorfismo é criar objetos intercambiáveis, dependendo das necessidades.

O que você pode fazer com o polimorfismo?

Quando a classe filho tem o mesmo método declarado na classe pai, chamamos isso de substituição de método.

Ou, em outras palavras, se uma classe filha fornece a implementação do método que foi declarado por sua classe pai, ela é chamada de substituição de método. Certas coisas a serem lembradas na substituição de método são:

  • O método deve ter o mesmo nome que o mencionado na classe pai
  • O método também deve ter o mesmo parâmetro mencionado na classe pai.
  • Deve haver a herança, ou seja, o relacionamento IS-A.

Trabalhando com polimorfismo?

Quando uma classe possui vários métodos com o mesmo nome, mas com parâmetros diferentes, ela é chamada de Sobrecarga de método.

Suponha que tenhamos que executar apenas uma operação, e ter o mesmo nome dos métodos aumentaria a legibilidade do programa. As maneiras de sobrecarregar o método em Java são:

  • Alterando o número de argumentos
  • Alterando o tipo de dados

No entanto, em Java, não é possível se alterarmos apenas o tipo de retorno do método.

Vantagens

  • O polimorfismo ajuda os programadores a reutilizar o código e também as classes que uma vez foram escritas para serem testadas e implementadas. (Reutilização do código)
  • Um único nome de variável pode armazenar variáveis ​​de vários tipos de dados (int, float, double, long, etc).
  • Aumenta a legibilidade do programa.

Por que devemos usar o polimorfismo?

Além do polimorfismo dinâmico e do polimorfismo estático, existem algumas características de programação Java que exibem polimorfismo além dos dois tipos principais.

São eles: coerção, parâmetros polimórficos e sobrecarga do operador

Coerção

Vamos entender a coerção com um exemplo muito simples. Considere uma sequência com o valor “classe de coerção:”. Considere outro número inteiro com o valor 1. Agora, o que acontece quando você concata um valor de sequência com um valor inteiro? O resultado dessa concatenação seria "classe de coerção: 1". Isso é chamado de coerção. A conversão implícita de tipo é feita para evitar erros de tipo. Isso é feito pelo compilador.

Sobrecarga do operador

Antes de começar com a sobrecarga do operador, também conhecida como sobrecarga de método, vamos dar um exemplo. Considere uma sequência com o valor "Operator" e outra como "Overloading". Use o símbolo de mais (+) com essas duas cadeias, assim como você adiciona dois números inteiros. O (+) concatenará essas duas seqüências. No caso de dois números inteiros, a soma de dois números inteiros é retornada. Quando um símbolo ou operador tem a capacidade de alterar seu significado, dependendo da maneira como são usados, o tipo de polimorfismo exibido é chamado Sobrecarga do operador.

Parâmetros

No polimorfismo, um objeto pode aparecer de várias formas. Em Java, refere-se a permitir o acesso a um objeto de uma das seguintes maneiras, como -

1. usando a variável de referência de sua classe ou superclasse pai

2. usando a variável de referência da classe em que ela existe.

Por que precisamos de polimorfismo?

A principal razão pela qual o polimorfismo é necessário é que esse conceito seja amplamente utilizado na implementação da herança. Ela desempenha um papel importante ao permitir que os objetos tenham estruturas internas variadas no compartilhamento da mesma interface externa. O polimorfismo é declarado claramente como um mapeado para muitos.

Escopo

A ligação está conectando uma chamada de método ao corpo do método. Temos dois tipos de ligação.

Ligação estática (ligação antecipada): quando o tipo de objeto é determinado no tempo de compilação.

Associação dinâmica (associação tardia): quando o tipo de objeto é determinado no tempo de execução.

Conclusão

O polimorfismo é, portanto, considerado como uma das características muito importantes da programação orientada a objetos. Se você fala sobre um exemplo real de polimorfismo, pode ser que uma pessoa ao mesmo tempo possa ter características diferentes, por exemplo, um homem ao mesmo tempo é filho, marido, funcionário. Portanto, a mesma pessoa adquire um comportamento diferente em situações diferentes. Isso, em termos orientados a objetos, é chamado polimorfismo, uma característica importante da programação orientada a objetos.

Artigos recomendados

Este foi um guia para o que é polimorfismo ?. Aqui discutimos o trabalho, escopo, necessidade e vantagens do polimorfismo. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. O que é JavaScript?
  2. O que é HTML
  3. O que é Python
  4. Polimorfismo em C #
  5. Matrizes na programação Java
  6. Conversão de tipo em Java com tipos e exemplos
  7. Guia de conversão em Java com exemplos
  8. Ligação estática e ligação dinâmica | Introdução | Usos