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ê está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!!