O polimorfismo, que significa muitas formas, permite que uma mesma referência se comporte de formas diferentes. Utilizando corretamente o polimorfismo nós podemos fazer o código ficar mais claro, genérico e, portanto, reutilizável.
Veja um exemplo:
Suponhamos que temos uma superclasse chamada Pessoa:
public class Pessoa { public void nome() { } }
E que temos duas subclasses com o nome de Estudante e Empregado:
public class Estudante extends Pessoa { public void nome() { System.out.println("Nome do estudante: Oberdan"); } }
public class Empregado extends Pessoa { public void nome() { System.out.println("Nome do empregado: Taylor"); } }
Agora, na nossa classe principal temos o seguinte código:
/* Perceba que o tipo da variavel é Pessoa , mas não referencia um objeto do * tipo Pessoa, mas sim um objeto Estudante ou Empregado, essa variavel ref * pode referenciar qualquer objeto que extends a classe Pessoa. */ public class ClassePrincipal { public static void main(String[] args) { Pessoa ref = new Estudante(); ref.nome(); // Referencia um objeto da classe Estudante(); ref = new Empregado(); ref.nome(); // Referencia um objeto da classe Empregado(); } }
O polimorfismo permite que múltiplos objetos de diferentes subclasses sejam tratados como objetos de uma única superclasse, e que automaticamente sejam selecionados os métodos adequados a serem aplicados a um objeto em particular, baseado na subclasse a que ele pertença.
Nenhum comentário:
Postar um comentário