Junior
O que é polimorfismo na programação?
sobes.tech IA
Resposta da IA
O polimorfismo (do grego "muitas formas") é a capacidade de diferentes objetos responderem de forma diferente à mesma mensagem (chamada de método), dependendo do seu tipo.
Na programação orientada a objetos, o polimorfismo permite:
- Trabalhar com objetos de diferentes classes através de uma interface comum ou classe base.
- Criar código mais flexível e extensível.
Principais tipos de polimorfismo:
- Polimorfismo em tempo de compilação (estático): realizado através de sobrecarga de métodos (method overloading). Métodos com o mesmo nome, mas assinaturas diferentes (quantidade ou tipos de parâmetros), são definidos na mesma classe.
- Polimorfismo em tempo de execução (dinâmico): realizado através de sobrescrita de métodos (method overriding). Um método numa classe filha tem a mesma assinatura que na classe pai. A chamada ao método específico é determinada em tempo de execução, dependendo do tipo real do objeto.
Exemplo em Python (polimorfismo dinâmico):
class Animal:
def sound(self):
pass # Método base, que será sobrescrito
class Dog(Animal):
def sound(self):
# Sobrescrita do método sound para a classe Dog
print("Woof")
class Cat(Animal):
def sound(self):
# Sobrescrita do método sound para a classe Cat
print("Meow")
# Função que trabalha com objetos através da classe base Animal
def make_animal_sound(animal):
animal.sound()
# Uso do polimorfismo
dog = Dog()
cat = Cat()
make_animal_sound(dog) # Chama Dog.sound() -> Woof
make_animal_sound(cat) # Chama Cat.sound() -> Meow