O que é polimorfismo na programação?
sobes.tech IA
Resposta da IA
O polimorfismo é a capacidade de objetos de diferentes classes responderem de forma diferente à uma mesma chamada de método. Isso é alcançado através do uso de herança, classes abstratas e interfaces. Em C#, o polimorfismo manifesta-se através da sobrescrita (overriding) de métodos da classe base em classes derivadas e da sobrecarga (overloading) de métodos.
Exemplos de polimorfismo:
-
Sobrescrita de métodos (Polimorfismo em tempo de execução): A classe derivada fornece sua própria implementação de um método declarado na classe base. Para isso, na classe base usa-se a palavra-chave
virtual, e na derivada,override.// Classe base class Shape { // Método virtual que pode ser sobrescrito public virtual void Draw() { // Implementação padrão } } // Classe derivada 1 class Circle : Shape { // Sobrescrita do método Draw public override void Draw() { // Implementação para um círculo } } // Classe derivada 2 class Square : Shape { // Sobrescrita do método Draw public override void Draw() { // Implementação para um quadrado } }Neste caso, pode-se criar uma lista de objetos
Shapee chamar o métodoDrawpara cada um, sendo que a implementação específica de cada tipo de figura será executada. -
Sobrecarga de métodos (Polimorfismo em tempo de compilação): Vários métodos com o mesmo nome, mas com assinaturas diferentes (quantidade ou tipos de parâmetros) na mesma classe.
class Calculator { // Método sobrecarregado Add (para int) public int Add(int x, int y) { return x + y; } // Método sobrecarregado Add (para double) public double Add(double x, double y) { return x + y; } }
O polimorfismo favorece a criação de código mais flexível, extensível e de fácil manutenção. Permite escrever código genérico que pode trabalhar com objetos de diferentes tipos.