Skip to main content

¿Que es una clase abstracta?

  • Augus

En la programación orientada a objetos, una clase abstracta proporciona una clase base que se puede usar para proporcionar otras clases con implementación parcial e interfaz. Están incompletos por sí mismos y se utilizan en situaciones de herencia en muchos lenguajes de programación como Java, C ++ y C #. Su uso como clase base significa que a menudo se les conoce como una clase base abstracta (ABC).

Como parte integral de la programación orientada a objetos, la abstracción de datos elimina los detalles innecesarios de un objeto. Esencialmente, reduce el objeto a sus principales características de identificación. Estas características básicas proporcionan un plan que puede usarse para crear otros objetos con las mismas propiedades, que solo difieren en los detalles.

Este plan se define como una clase. Las clases se utilizan para encapsular el código, lo que facilita al programador, ya que puede hacer referencia a rutinas comunes específicas en lugar de escribir las rutinas una y otra vez. Los programadores crean objetos secundarios a partir de clases, y estos objetos heredan las funciones y métodos dentro de la clase principal.

El propósito de una clase abstracta es ser el marco sobre el cual se construyen otras clases. Los objetos no se pueden crear directamente desde una clase abstracta, solo desde las subclases que pertenecen a la clase abstracta. Para que un objeto herede de una clase abstracta, se debe crear una subclase. Los objetos de una subclase creada de una clase abstracta heredan propiedades de esa clase abstracta.

Cada clase modela un concepto, y las clases abstractas tienden a modelar conceptos más abstractos usando métodos abstractos. Los métodos abstractos son subrutinas dentro de una clase abstracta que no contienen implementación. Estas subrutinas se utilizan como marcadores de posición que se sobrescribirán con una subclase o un objeto diseñado en función de la clase que contiene el método abstracto en sí.

Existen diferentes métodos para crear una clase abstracta. Por ejemplo, en C ++, se crea una clase abstracta desarrollando una clase con al menos un método abstracto o una función virtual pura. Java utiliza una palabra clave, "resumen", para denotar una clase abstracta. Sin embargo, no están definidos en lenguajes de programación que no admiten la idea de herencia.

La herencia es el proceso de crear nuevos objetos a partir de clases donde los nuevos objetos pueden usar las funciones y métodos definidos dentro de sus clases principales sin la necesidad de volver a enunciar el programa. Por eso es útil una clase abstracta. Las clases secundarias y los objetos secundarios de esas subclases heredan propiedades de la clase abstracta principal. Las clases abstractas se consideran superclases y se encuentran en la parte superior de la jerarquía de la estructura de clases, por lo que no tienen sentido en un lenguaje que no admite la herencia.