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:
-
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.
-
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,overrideem 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.