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