Entendendo o Polimorfismo em C#: O Que É e Como Usar
Quando você começa a trabalhar com programação orientada a objetos em C#, um conceito fundamental que você encontrará é o polimorfismo. Este princípio poderoso permite que você escreva código mais flexível e reutilizável. Mas o que exatamente é polimorfismo e como ele funciona? Vamos explorar isso com exemplos práticos em C#.
O Que é Polimorfismo?
Polimorfismo, no contexto da programação orientada a objetos, refere-se à capacidade de diferentes classes responderem a uma mesma mensagem ou chamada de método de maneiras distintas. Em termos simples, o polimorfismo permite que você use uma interface comum para diferentes tipos de objetos, cada um com sua própria implementação.
Existem dois tipos principais de polimorfismo em C#:
- Polimorfismo de Tempo de Compilação (Estático)
- Polimorfismo de Tempo de Execução (Dinâmico)
Vamos entender cada um deles com exemplos em C#.
Polimorfismo de Tempo de Compilação (Estático)
O polimorfismo de tempo de compilação, também conhecido como sobrecarga de métodos, permite que você defina vários métodos com o mesmo nome, mas com diferentes listas de parâmetros. O compilador decide qual método usar com base nos argumentos fornecidos na chamada do método.
Exemplo de Sobrecarga de Métodos
using System;
class Exemplo
{
public void Imprimir(int numero)
{
Console.WriteLine("Número: " + numero);
}
public void Imprimir(string texto)
{
Console.WriteLine("Texto: " + texto);
}
}
class Programa
{
static void Main()
{
Exemplo exemplo = new Exemplo();
exemplo.Imprimir(10); // Chama o método que recebe um int
exemplo.Imprimir("Olá Mundo"); // Chama o método que recebe um string
}
}
Polimorfismo de Tempo de Execução (Dinâmico)
O polimorfismo de tempo de execução, também conhecido como polimorfismo baseado em herança, permite que você substitua métodos da classe base em classes derivadas. A chamada ao método é resolvida em tempo de execução, permitindo que um método da classe derivada seja chamado mesmo quando a variável é do tipo da classe base.
Exemplo de Polimorfismo Dinâmico
using System;
class Animal
{
public virtual void FazerSom()
{
Console.WriteLine("Som de animal");
}
}
class Cachorro : Animal
{
public override void FazerSom()
{
Console.WriteLine("Latido");
}
}
class Gato : Animal
{
public override void FazerSom()
{
Console.WriteLine("Miau");
}
}
class Programa
{
static void Main()
{
Animal meuAnimal = new Cachorro();
meuAnimal.FazerSom(); // Saída: Latido
meuAnimal = new Gato();
meuAnimal.FazerSom(); // Saída: Miau
}
}
O polimorfismo é uma das características mais poderosas da programação orientada a objetos. Ele permite que você escreva código mais flexível e extensível, facilitando a manutenção e a evolução de sistemas complexos. Em C#, você pode aproveitar o polimorfismo de tempo de compilação e de tempo de execução para criar aplicações mais robustas e adaptáveis (:
Tilambocano
ResponderExcluirEu não hueheuheuhueheuh
Excluir