Viendo este código. Puedo hacer lo que hago en el manejador del evento? Me lo preguntaron en un test y contesté que no porque las clases abstractas no se pueden instanciar pero .... en este caso que instanciamos? la clase abstracta? o la clase que hereda de la abstracta?
Código:
Saludos using System; using System.Windows.Forms; namespace ClasesAbstractas { abstract class FiguraGeometrica { public abstract double Area(); } class Circulo: FiguraGeometrica { private int radio; // A read-write instance property: public int Radio { get { return radio; } set { radio = value; } } public Circulo(int r) { Radio = r; } public override double Area() { return (double)(Radio*Radio*3.14); } } //calse tirangulo class Triangulo: FiguraGeometrica { //propiedades private int ladA; private int ladB; private int ladC; //propiedades public int LadoA { get { return ladA; } set { ladA = value; } } public int LadoB { get { return ladB; } set { ladB = value; } } public int LadoC { get { return ladC; } set { ladC = value; } } public Triangulo (int a, int b, int c) { LadoA = a; LadoB = b; LadoC = c; } public override double Area() { double num, mPer; mPer = (double)(LadoA+LadoB+LadoC)/2; num = mPer*(mPer-LadoA)*(mPer-LadoB)*(mPer-LadoC); if (num <= 0 ) { MessageBox.Show("posiblemente el triangulo no exista, intentelo nuevamente"); return 0; } else return Math.Pow(num,0.5); } } class Cuadrado: FiguraGeometrica { //atributos private int lado; public int Lado { get { return lado; } set { lado = value; } } public Cuadrado(int l) { Lado = l; } public override double Area() { return Lado*Lado; } } } private void cmdgetAreaCir_Click(object sender, System.EventArgs e) { //Es correcto? diganme que no FiguraGeometrica miFigura = new Cuadrado() }