Polimorfismo


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