Sobes.tech
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