Não ficou claro para me a questão do polimorfismo no c#. Poderia explicar novamente ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não ficou claro para me a questão do polimorfismo no c#. Poderia explicar novamente ?
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!