Article image
Élder Nascimento
Élder Nascimento29/08/2025 11:56
Compartilhe

O que é Polimorfismo

    A palavra polimorfismo vem do grego:

    • "poli" = muitos
    • "morfismo" = formas

    Ou seja, um mesmo método pode ter diferentes formas de comportamento, dependendo do contexto.

    No C#, isso é um pilar da Programação Orientada a Objetos (POO) junto com:

    • Encapsulamento
    • Herança
    • Abstração

    Tipos de Polimorfismo em C#

    No C# temos dois principais:

    1. Polimorfismo de Sobrecarga (Overloading)

    Acontece na mesma classe quando temos métodos com o mesmo nome, mas parâmetros diferentes.

    Exemplo:

    image

    O método Somar tem várias formas (diferentes assinaturas).

    Polimorfismo de Sobrescrita (Overriding)

    Acontece com herança, quando uma classe filha redefine um método da classe pai.

    Isso é feito com as palavras-chave virtual (na classe base) e override (na classe derivada).

    Exemplo:

    image

    Aqui, mesmo chamando o mesmo método Falar(), o comportamento muda dependendo do objeto (Cachorro ou Gato).

    Resumindo:

    Polimorfismo = mesma interface (mesmo nome de método), mas com comportamentos diferentes.

    Em C# temos:

    Sobrecarga (Overloading) → Vários métodos com o mesmo nome, mas assinaturas diferentes.

    Sobrescrita (Overriding) → Uma classe filha pode redefinir o método da classe pai.

    Compartilhe
    Comentários (1)
    DIO Community
    DIO Community - 01/09/2025 15:26

    Excelente explicação, Élder! Você conseguiu trazer o conceito de polimorfismo de forma simples e objetiva, mostrando não só a origem da palavra, mas também como ela se aplica de maneira prática no C#. Os exemplos de sobrecarga e sobrescrita deixam o conteúdo muito mais claro e ajudam a visualizar como esse pilar da POO funciona no dia a dia do desenvolvimento.

    Na DIO valorizamos bastante quando um tema técnico é explicado de forma acessível, porque isso permite que mais pessoas consigam avançar na sua jornada de aprendizado e se sintam confiantes para aplicar esses conceitos em projetos reais. O seu artigo cumpre esse papel muito bem, tornando um assunto complexo em algo mais próximo da prática.

    Qual dos dois tipos de polimorfismo você considera mais desafiador de aplicar no início dos estudos em C#?