Você está na página 1de 8

Programação II

Polimorfismo
Interface
Polimorfismo
Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma
superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas
comportamentos distintos, especializados para cada classe derivada, usando para tanto
uma referência a um objeto do tipo da superclasse.

O polimorfismo permite que classes abstratas consigam receber comportamentos através


de classes concretas. Por exemplo, um dispositivo USB, podemos considerar que o USB
seria uma classe abstrata enquanto os dispositivos (Pen Driver, Ipad, Câmeras, etc)
seriam as classes concretas. Ou seja, o USB é uma especificação que pode ter várias
implementações com características diferentes.
Polimorfismo
Para que o polimorfismo possa ser utilizado, é necessário que os métodos que estejam
sendo definidos nas classes derivadas tenham exatamente a mesma assinatura do método
definido na superclasse.

No caso do polimorfismo, o compilador não tem como decidir qual o método que será
utilizado se o método foi redefinido em outras classes.
Polimorfismo – Sobrescrita de Método
A sobrescrita de métodos é muito utilizada na implementação de polimorfismo para que
uma classe filha possa definir seu próprio comportamento, baseada na estrutura da classe
mãe. Por exemplo:
Polimorfismo – Sobrescrita de Método
// Classe OperacaoMatematica

public class OperacaoMatematica {

public double calcular(double x, double y){

return 0;

//Classe Soma herdando de OperacaoMatematica


public class Soma extends OperacaoMatematica {

public double calcular(double x, double y){


return x + y;
}
}
Polimorfismo – Sobrescrita de Método
public class TestaOperacaoMatematica {

//EXECUTA A OPERACAO - COM POLIMORFISMO


public static void calculaOperacao(OperacaoMatematica o, double x, double y){
System.out.println(o.calcular(x, y));
}

public static void main(String[] args) {


calculaOperacao (new Soma(), 2500, 200);
calculaOperacao (new Multiplicacao(), 10, 10);
}
}
Polimorfismo – Sobrescrita de Método
Polimorfismo – Sobrescrita de Método

Você também pode gostar