Sobes.tech
Junior — Middle

Pode explicar o conceito de polimorfismo na programação orientada a objetos?

sobes.tech IA

Resposta da IA

O polimorfismo é um princípio da programação orientada a objetos que permite que objetos de diferentes classes respondam de forma diferente às mesmas mensagens (métodos).

Existem dois tipos principais de polimorfismo:

  1. Compilação (estático) — sobrecarga de métodos e operadores.
  2. Execução (dinâmico) — redefinição de métodos em classes herdadas.

Exemplo de polimorfismo dinâmico em C#:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal speaks");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Bark");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("Meow");
    }
}

// Uso
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak(); // Vai imprimir "Bark"
myCat.Speak(); // Vai imprimir "Meow"

Dessa forma, a mesma chamada do método Speak() comporta-se de forma diferente dependendo do tipo do objeto.