O que é polimorfismo? Dê exemplos.
Passo 1
Então, a gente tem uma pergunta sobre polimorfismo. A matéria aqui é programação orientada a objetos, e para responder isso, a gente vai precisar entender o que é polimorfismo e ver alguns exemplos práticos para deixar tudo mais claro.
Passo 2
Primeiro, vamos entender o que é polimorfismo. A palavra vem do grego: “poli” significa muitos e “morfismo” significa formas. Então, polimorfismo é a habilidade de ter muitas formas. Na programação, isso significa que uma mesma interface ou método pode se comportar de maneiras diferentes dependendo do contexto.
Passo 3
Para deixar isso mais claro, vamos imaginar que a gente tem uma classe chamada
Animal
com um método chamado fazerSom()
. Dependendo do tipo de animal, esse método vai produzir um som diferente.Passo 4
Aqui está um exemplo simples em código:
class Animal {
void fazerSom() {
System.out.println("Animal faz um som");
}
}
class Cachorro extends Animal {
void fazerSom() {
System.out.println("Cachorro late");
}
}
class Gato extends Animal {
void fazerSom() {
System.out.println("Gato mia");
}
}
public class Main {
public static void main(String[] args) {
Animal meuAnimal;
meuAnimal = new Cachorro();
meuAnimal.fazerSom(); // Saída: Cachorro late
meuAnimal = new Gato();
meuAnimal.fazerSom(); // Saída: Gato mia
}
}
Passo 5
No exemplo acima, a classe
Animal
tem um método fazerSom()
. As classes Cachorro
e Gato
herdam de Animal
e sobrescrevem o método fazerSom()
. Quando a gente cria um objeto meuAnimal
do tipo Animal
e aponta para uma instância de Cachorro
ou Gato
, o método que será chamado depende do objeto real. Isso é polimorfismo em ação!Resposta
Polimorfismo é o conceito da programação orientada a objetos que permite que objetos de diferentes classes sejam tratados como objetos da mesma classe base, possibilitando que métodos com o mesmo nome se comportem de maneiras diferentes. Um exemplo disso é uma classe
Animal
com um método fazerSom()
, onde classes filhas como Cachorro
e Gato
implementam esse método de forma específica, resultando em sons diferentes quando chamado.