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.