DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

Clases Abstractas

0

 


Clases y métodos abstractos

Un método abstracto es un método sin implementación. Implicitamente es un método virtual que estamos obligados a sobrecargar en una clase derivada. Estos métodos sólo pueden aparecer en un clase abstracta. En ambos casos hemos de utilizar la palabra clave abstract para hacer abstracto un método o una clase. Las clases abstracta no pueden ser instanciadas, ni tampoco las que deriven de ellas sin proporcionar un implementación para todos los métodos que carezcan de ella. Veamos un ejemplo que nos permita definir un método que devuleva el área de un figura geométrica:

// abstrac.cs
 
abstract class Figura
{
  ...
  public abstract float Area();
  ...
}
 
class Rectangulo: Figura
{
  ...
  public override float Area()
  {
    return Alto * Ancho;
  }
  ...
}
 
class Abstract
{
  public static Main()
  {
    Figura[] figuras = new Figura[3];
 
    figuras[0] = new Figura(1, 2);     // error, clase abstracta
    figuras[1] = new Rectangulo(3, 4); // ok
    figuras[2] = new Cuadrado(5);      // ok, hereda Area()
 
    foreach (Figura f in figuras)
    {
      Console.WriteLine("El área de un {0} de {1}x{2} es {3}", 
                         f.GetType(), f.Alto, f.Ancho, f.Area());
    }
  }

}

DEMOSTRACIÓN

Seleccionamos la opción ‘Console Application’ y colocamos como nombre ‘DemoApp Figura’ y damo click en el botón OK


Y procederemos a crear 3 clases Figura, Cuadrado y Circulo


La Clase Figura sería la clase Padre y estará compuesta por dos atributos abstractos


La clase Cuadrado heredando de Figura


Igual Circulo


En el Program.cs, ejecutaríamos la nuestra aplicación de la siguiente forma


Y la salida de la consola es la siguiente:

Ahora crearemos un método Virtual a nuestra clase Figura


Y comentamos el método Override en la Clase Cuadrado


La salida Por la consola es la siguiente


Ahora en nuestra clase cuadrado crearemos otro método Override pero con el operador New


La salida de la consola quedaría de la siguiente forma:





Tal vez te interesen estas entradas

No hay comentarios