Ainda não consigo visualizar exemplos de polimorfismo, alguém pode me ajudar?
Ainda não consigo visualizar exemplos de polimorfismo, alguém pode me ajudar?
Boa tarde, Michael! Como vai?
Imagina que tenhamos uma classe especialista em ordenar ArrayList
. Ela poderia ser escrita assim:
public class OrdenadoraDeLista {
public ArrayList ordena(ArrayList lista) {
ArrayList listaOrdenada = // ordenação da lista recebida.
return listaOrdenada;
}
}
Mas agora, eu quero poder ordenar também um LinkedList
que é um outro tipo de lista que o Java disponibiliza além do ArrayList
. E aí, como fazer? Terei que escrever outra classe para ordenar um LinkedList
? A boa notícia é que não é preciso!
Eu posso me valer do polimorfismo e modificar a minha classe anterior da seguinte forma:
public class OrdenadoraDeLista {
public List ordena(List lista) {
List listaOrdenada = // ordenação da lista recebida.
return listaOrdenada;
}
}
Veja que agora, o método ordena()
consegue receber e devolver qualquer lista que implemente a interface List
que aliás é justamente o caso das classes ArrayList
e LinkedList
, pois ambas implementam essa interface!
Esse é apenas um dos casos onde o polimorfismo pode nos ajudar! No dia-a-dia da programação teremos muitos outros casos onde poderemos aplicar esse conceito!
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!