Vocês poderiam, por favor, descrever aqui como funciona? Não captei muito bem com o vídeo, talvez outra explicação facilite. Obrigada!
Vocês poderiam, por favor, descrever aqui como funciona? Não captei muito bem com o vídeo, talvez outra explicação facilite. Obrigada!
Olá Antonia, tudo bem com você? O conceito de polimorfismo não é complicado, com o tempo e uso vai ficar mais comum para você este conceito, conforme o próprio instrutor menciona no vídeo.
Vou colocar um texto abaixo de um livro muito bom sobre Java. Extraído do livro "Java - Como Programar" - Paul e Harvey Deitel. Ed. 10.
Suponha que criamos um programa que simula o movimento de vários tipos de
animais para um estudo biológico. As classes Peixe, Anfíbio e Pássaro representam os três tipos de animais sob investigação. Imagine
que cada classe estende a superclasse Animal, que contém um método mover e mantém a localização atual de um animal como
coordenadas x-y. Cada subclasse implementa o método mover. Nosso programa mantém um array Animal que contém referências
a objetos das várias subclasses Animal. Para simular os movimentos dos animais, o programa envia a mesma mensagem a cada
objeto uma vez por segundo — a saber, mover. Cada tipo específico de Animal responde a uma mensagem mover de uma maneira
única — um Peixe poderia nadar um metro, um Anfíbio poderia pular um metro e meio e um Pássaro poderia voar três metros.
Cada objeto sabe como modificar suas coordenadas x-y de forma adequada para seu tipo específico de movimento. Contar com o fato
de que cada objeto sabe “fazer a coisa certa” (isto é, faz o que é apropriado a esse tipo de objeto) em resposta à mesma chamada
de método é o conceito-chave do polimorfismo. A mesma mensagem (nesse caso, mover) enviada a uma variedade de objetos tem
muitas formas de resultados — daí o termo polimorfismo.
Além desta explicação indico ainda outro post aqui do fórum: https://cursos.alura.com.br/forum/topico-quero-entender-mais-sobre-polimorfismo-64432
E adicionalmente material da Caellum: https://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/
E novamente a frente encontrará exemplos que deixarão o assunto mais claro para você.
Caso este post tenha te ajudado, marcar como solucionado. Se não, postar ainda aqui suas dúvidas. Bons estudos!
Olá,
Acho importante entender primeiramente a diferença entre variável e objetos.
Um exemplo seria mais ou menos assim:
class Animal{
public void comunica(){
System.out.println("comunica");
}
}
class Cachorro extends Animal{
@Override
public void comunica(){
System.out.println("late");
}
}
class Gato extends Animal{
@Override
public void comunica(){
System.out.println("mia");
}
}
Animal c = new Cachorro(); // Variável c do tipo Animal, referencia o objeto do tipo Cachorro
Animal g = new Gato(); // Variável g do tipo Animal, referencia o objeto do tipo Gato
c.comunica(); // Saída será "late";
g.comunica(); // Saída será "mia";
Se invocarmos um método utilizando a variável da superclasse, em tempo de execução o método chamado será sempre do objeto.
Luciano
Pessoal, muito obrigada! Ficou maus claro lendo as duas repostas aqui!!