1
resposta

Não entendi a questão do polimorfismo no C#

Não ficou claro para me a questão do polimorfismo no c#. Poderia explicar novamente ?

1 resposta

Olá José, tudo bem?

Com polimorfismo conseguimos invocar métodos da classe derivada através da classe base, e permitir que classes forneçam diferentes implementações de métodos que são chamados com o mesmo nome.

Para te dar um exemplo mais claro, fiz a criação de duas classes a Triangulo e Retangulo, veja:

 public class Retangulo
    {
        public virtual void CalcularArea(int _base, int _altura)
        {
            Console.WriteLine("A área do retangulo é: " + (_base * _altura));
        }
    }

public class Triangulo : Retangulo
    {
        public override void CalcularArea(int _base, int _altura)
        {
            Console.WriteLine("A área do triangulo é: " + (_base * _altura)/2);
        }
    }

Perceba que a classe Triangulo herda a classe Retangulo, com isso conseguimos utilizar o mesmo método CalcularArea em ambas classes. Precisamos apenas fazer alterações no cálculo para chegar ao resultado esperado.

Para exibir o cálculo, precisamos instanciar as classes no main utilizando o único método CalcularArea, veja:

static void Main(string[] args)
        {
            Retangulo retangulo = new Retangulo();

            retangulo.CalcularArea(10, 35);

            Triangulo triangulo = new Triangulo();

            triangulo.CalcularArea(10, 35);

            Console.ReadLine();
        }

Espero ter ajudado, mas caso ainda esteja com dúvidas, fique tranquilo para perguntar novamente.

Abraços e bons estudos!