Tipos de Polimorfismo

O Polimorfismo pode ser classificado de três maneiras:

  • Polimorfismo de sobrecarga
  • Polimorfismo de sobreposição
  • Polimorfismo de inclusão

Polimorfismo de Sobrecarga

Polimorfismo de sobrecarga permite que um método de determinado nome tenha comportamentos distintos, em função de diferentes parâmetros (1) que ele recebe. Cada método difere no número e no tipo de parâmetros.

Exemplo

Considere uma classe Maior capaz de calcular e retornar o maior entre dois números de tipos diferentes. A Listagem 1 ilustra o código de tal classe.

(1) Lembrando: parâmetros são as variáveis que estão dentro dos parênteses na declaração do método.

Listagem 1 - Polimorfismo de sobrecarga com tipos de parâmetros diferentes

Veja no exemplo uma aplicação prática do uso do polimorfismo de sobrecarga. Observe que temos vários métodos com o mesmo nome, no caso calcMaior(), cujo objetivo é indicar qual é o maior dentre dois números.

O que diferencia cada um deles é o tipo de parâmetros. No primeiro método, os parâmetros são do tipo int. Já no segundo método, os dois parâmetros são float. Finalmente, no terceiro método, os parâmetros são do tipo double. Esses métodos fazem a mesma coisa (calculam o maior entre dois números), mas de maneiras diferentes, pois recebem e retornam tipos diferentes.

Observe agora o último método calcMaior() declarado na classe Maior. Esse método, apesar de diferenciar do anterior pelo tipo de retorno de double para int, não será aceito pelo compilador Java como um polimorfismo de sobrecarga.

O motivo é que já existe um método com o nome calcMaior() e dois parâmetros do tipo double.

Esse método seria aceito se houvesse um número diferente de parâmetro ou um dos parâmetros tivesse o tipo diferente de double, como mostra a Listagem 2.

Listagem 2 - Polimorfismo de sobrecarga com tipo e número de parâmetros diferentes

Observe que agora os dois últimos métodos possuem número e tipos de parâmetros diferentes dos métodos anteriores.

Versão 5.3 - Todos os Direitos reservados