Polimorfismo em Java

Na programação orientada a objetos, o polimorfismo em Java permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam.

Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa “muitas formas” (poli = muitas, morphos = formas).

O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.

Uma das formas de implementar o polimorfismo é através de uma classe abstrata, cujos métodos são declarados mas não são definidos, e através de classes que herdam os métodos desta classe abstrata:

public abstract class OperacaoMatematica {
	
   public abstract double calcular(double x, double y); 
}

Esta é uma classe abstrata que representa qualquer operação matemática. Podemos imaginar diversas operações que se encaixam na sua interface, como soma, subtração, multiplicação ou divisão, entre outras.

Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica:

public class Soma extends OperacaoMatematica {
	
   public double calcular(double x, double y) {
		
	return x + y; 
   } 
} 
    
public class Sustracao extends OperacaoMatematica {
	
   public double calcular(double x, double y) {
		
	return x - y; 
   } 
}

O seguinte trecho de código demonstra o uso do polimorfismo:

public class Contas {
	
   public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) {
		
	System.out.println("O resultado é: " + operacao.calcular(x, y));   
   }
     
   public static void main(String args[]) {
		
      //primeiro calculamos uma soma
      Contas.mostrarCalculo(new Soma(), 5, 5); // imprime o resultado é: 10
      
     //depois uma subtração
     Contas.mostrarCalculo(new Subtracao(), 5, 5); // imprime o resultado é: 0
   }            
}

Embora o método calcular tenha sido chamado duas vezes no interior de mostrarCalculo, os tipos (isto é, as classes das instâncias) utilizados como parâmetros eram diferentes.

De fato, o comportamento de cada tipo era exatamente oposto.

É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo (chamado de polimorfismo ad-hoc).

Nesse caso, implementa-se métodos com um mesmo nome, mudando apenas a lista de parâmetros que ele recebe. 

Tratamento de exceção em Java

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: |

Seu computador está lento, travando ou dando tela azul? E toda vez que isso acontece você precisa gastar dinheiro com assistência técnica?

A verdade é que continuar sem esse conhecimento pode estar custando muito mais do que você imagina.

Você pode economizar centenas ou até milhares de reais ao longo do tempo fazendo você mesmo a manutenção dos seus computadores. E, se decidir prestar serviços, esse conhecimento também pode se transformar em uma fonte de renda, que pode variar de R$2.000 a R$5.000 por mês ou mais.

Tudo isso com aulas práticas, objetivas e focadas no que realmente funciona, sem enrolação:

✔ Resolver seus próprios problemas sem depender de ninguém
✔ Ganhar dinheiro com manutenção e suporte técnico
✔ Ou até entrar de vez no mercado de TI

A decisão é sua: continuar gastando dinheiro sempre que o computador apresentar um problema ou aprender uma habilidade que pode fazer você economizar e até gerar uma nova fonte de renda.

👉 CLIQUE AQUI AGORA e veja todos os detalhes antes que essa oportunidade passe:

Super Técnico 2.0

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação e apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *