Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olaa,
Sou iniciante em C#, e estou estudando OO. Entendi perfeitamente o conceito de Overriden.Devido ao entendimento teórico peguei no site do MSDN o exemplo abaixo para estudar, mas alguns pontos não ficaram claros, minhas dúvidas estão destacadas em vermelho no código abaixo:
class TestClass
{
public class Square
{
public double x;
public Square(double x_)
{
this.x = x_;
}
public virtual double Area()
{
return x * x;
}
}
class Cube : Square
{
// DÚVIDA(01):
// PORQUE O CONSTRUTOR DA SUBCLASSE ESTÁ ESCRITA DESSA FORMA, OU SEJA, PORQUE
// O ELEMENTO " : base(x)" FOI USADO DESSA FORMA ??
public Cube(double x) : base(x) { }
public override double Area()
{
return (6 * (base.Area()));
}
}
public static void Main()
{
double x = 5.2;
Square s = new Square(x);
// DÚVIDA(02):
// PORQUE O CONTRUTOR DA SUBCLASSE FOI CHAMADO DESSA FORMA ??
// QUAL A REAL NECESSIDADE DE FAZER "Square c = new Cube(x)" ??, OU SEJA, QUAL A
// LOGICA NO USO DE "Square c = new Cube(x)" ??
Square c = new Cube(x);
Console.WriteLine("Área do Quadrado= {0:F2}", s.Area());
Console.WriteLine("Área do Cubo = {0:F2}", c.Area());
Console.ReadKey();
}
}
Desde já, Agradeço.
Atenciosamente.
Olaa,
Muito obrigado pela sua atenção.Mas estive estudando o exemplo e testando as seguintes alternativas:
Alternativa 1)
public static void Main()
{
Cube c = new Cube(x);
}
Tem como resultado 162.24.
e
Alternativa 2)
public static void Main()
{
Square c = new Cube(x);
}
Tem como resultado 162.24.
O resultado é o mesmo, entendi todas as suas palavras, mas não ficou claro ainda o critério para uso de " Square c = new Cube(x)".
Novamente muito obrigado.
problema resolvido ...
obrigado pela atenção...
Teorias não é meu forte, mas vamos la.
Na primeira dúvida, o base significa a classe base dele que é a classe que ele esta herdando, já informando o valor do construtor dela. E ja respondendo a segunda pergunta, repare que no construtor da classe Square ele espera um parametro de entrada, que é o x nos dois exemplos.
Abraços...