0% encontró este documento útil (0 votos)
91 vistas4 páginas

Clases Abstractas en C#: Conceptos y Ejemplo

Las clases abstractas no pueden ser instanciadas directamente, sino que sirven como base para clases concretas que heredan de ellas. Una clase abstracta puede contener métodos y propiedades abstractos que deben ser implementados en las clases derivadas, y también puede contener métodos virtuales. Las clases derivadas deben reemplazar los métodos abstractos heredados para permitir la creación de objetos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas4 páginas

Clases Abstractas en C#: Conceptos y Ejemplo

Las clases abstractas no pueden ser instanciadas directamente, sino que sirven como base para clases concretas que heredan de ellas. Una clase abstracta puede contener métodos y propiedades abstractos que deben ser implementados en las clases derivadas, y también puede contener métodos virtuales. Las clases derivadas deben reemplazar los métodos abstractos heredados para permitir la creación de objetos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Clases Abstractas en C#....

Para obtener un objeto necesitamos de una clase, sin embargo, hay casos en que es útil definir
clases para las cuales no se desea instanciar objetos. Tales clases son llamadas clases abstractas.
Debido a que normalmente son utilizadas como base en jerarquías de clases, nos referiremos a
ellas como clases base abstractas.

Las clases abstractas no sirven para instanciar objetos porque están incompletas, siendo sus clases
derivadas las que deberán definir las partes faltantes.

El propósito de una clase abstracta es proveer una clase base apropiada desde la cual otras clases
hereden.

Las clases desde las cuales se pueden instanciar objetos se llaman clases concretas. Tales clases
proveen implementaciones de cada método o propiedad que definen.

Las clases abstractas normalmente contienen uno o más métodos o propiedades abstractas, las
cuales no proveen implementación. Las clases derivadas deben reemplazar los métodos abstractos
heredados para permitir la instanciación de objetos.

Para definir una clase abstracta se utiliza la palabra clave abstract (que también sirve para definir
métodos y propiedades abstractos).

Ejemplo:

Clase abstracta con dos métodos abstractos y un método virtual:

abstract class Figura

protected int x, y ;

// Declaración de un método abstracto.

public abstract double CalcularPerímetro( ) ;

public abstract double ClacularArea( ) ;


// Declaración de un método virtual

public virtual void VerDatos( )

[Link]("Visualizando Datos de la Figura Geometrica");

Si intentamos construir un objeto a partir de la clase Figura producirá un error de compilación.

Tomando como premisa una clase abstracta, se pueden implementar clases derivadas que
redefinen (reemplazan) a los métodos abstractos heredados de la clase base abstracta.

Toda clase concreta derivada debe reemplazar los métodos y propiedades abstractos de la clase
base, utilizando la palabra clave override, y proveer implementaciones concretas de tales métodos
y propiedades.

class Rectangulo : Figura

private double b, a ;

public Rectangulo(int m, int n, double s,double t)

x=m;

y=n;

b=s;

a=t;

// Implementación de un método abstracto.

public override double CalcularArea( )


{

return b * a ;

public override double CalcularPerimetro( )

return 2 * (b + a) ;

//Sobre-escribiendo parcialmente el método virtual.

public override void VerDatos( )

[Link]( );

[Link]("Area Rectangulo: {0}",[Link]( ));

[Link]("Perimetro Rectangulo: {0}",[Link]( ));

Clase Ejecutora:

class Principal

static void Main( )

Rectangulo r = new Rectangulo(10,10,50,30);

[Link]( );
[Link]( );

En este caso, se pueden construir objetos de la clase Rectángulo, pero no de la clase Figura.

También podría gustarte