Sobes.tech
Junior — Middle

Podes explicar os diferentes tipos de polimorfismo na programação orientada a objetos?

sobes.tech IA

Resposta da IA

Na programação orientada a objetos, o polimorfismo é a capacidade de objetos de diferentes classes responderem de forma diferente às mesmas mensagens (métodos). Os principais tipos de polimorfismo:

  1. Polimorfismo compilado (estático) — é determinado em tempo de compilação.

    • Sobrecarga de métodos (method overloading): vários métodos com o mesmo nome, mas diferentes parâmetros.
    • Sobrecarga de operadores (operator overloading) — limitada em C#, mas possível para alguns operadores.
  2. Polimorfismo em tempo de execução (dinâmico) — é determinado em tempo de execução.

    • Sobrescrita de métodos (method overriding): uma subclasse fornece sua própria implementação de um método da classe base.
    • Usado com as palavras-chave virtual, override em C#.

Exemplo de polimorfismo dinâmico em C#:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Som de animal");
    }
}

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

Animal myDog = new Dog();
myDog.Speak(); // Vai imprimir "Latido"

Assim, o polimorfismo permite escrever código flexível e extensível, onde objetos podem se comportar de maneiras diferentes, apesar de terem uma interface comum.