Não ficou claro para me a questão do polimorfismo no c#. Poderia explicar novamente ?
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!