Es una clase que deja parte de sí misma sin especificar, lo que obliga que exista una clase secundaria que la implemente.
En los lenguajes de programación, una clase abstracta es una clase genérica (o tipo de objeto) que se utiliza como base para crear objetos específicos que se ajusten a su protocolo o al conjunto de operaciones que admite.
Una clase abstracta, en el contexto de Java, es una superclase que no se puede instanciar y se usa para establecer o definir características generales.
No se puede formar un objeto a partir de una clase abstracta de Java; intentar instanciar una clase abstracta solo produce un error de compilación. La clase abstracta se declara utilizando la palabra clave resumen.
Las subclases extendidas de una clase abstracta tienen todos los atributos de la clase abstracta, además de los atributos específicos de cada subclase.
La clase abstracta establece las características de la clase y los métodos de implementación, definiendo así una interfaz completa.
Las clases abstractas son útiles cuando se crean jerarquías de clases que modelan la realidad porque permiten especificar un nivel invariable de funcionalidad en algunos métodos, pero dejan la implementación de otros métodos hasta que se necesita una implementación específica de esa clase (una clase derivada).
En los lenguajes de programación orientada a objetos (POO), las clases representan objetos en el dominio del problema que el software pretende resolver.
Las clases incluyen colecciones de atributos (propiedades) y comportamientos (métodos), que pueden basarse en clases definidas previamente.
Los programadores usan la herencia para derivar la implementación específica de clases abstractas. Las clases que se derivan de clases abstractas se denominan clases derivadas.
Cuando este principio se aplica muchas veces seguidas, da como resultado una jerarquía de clases.
En este contexto, las clases abstractas están en la raíz de esta jerarquía y se utilizan para aplicar métodos que deben anularse en las clases derivadas, evitando así posibles errores de tiempo de ejecución.
Las clases abstractas sirven como plantillas para sus subclases. Por ejemplo, la clase abstracta Tree y la subclase Banyan_Tree tienen todas las características de un árbol, además de características que son específicas del árbol banyan.
Comprender las diferencias entre una clase abstracta y una interfaz es esencial.
Una interfaz solo tiene declaraciones de métodos o métodos abstractos y miembros de datos constantes, mientras que una clase abstracta puede tener métodos abstractos, variables miembro y métodos concretos. Debido a que Java solo admite herencia simple, una clase puede implementar varias interfaces pero puede extender solo una clase abstracta.
Una clase abstracta tiene al menos un método abstracto. Un método abstracto no tendrá ningún código en la clase base; el código se agregará en sus clases derivadas.
El método abstracto en la clase derivada debe implementarse con el mismo modificador de acceso, número y tipo de argumento y con el mismo tipo de retorno que el de la clase base. No se pueden crear objetos de tipo de clase abstracta porque el código para instanciar un objeto de tipo de clase abstracta dará como resultado un error de compilación.
? Regresar al Diccionario Tecnológico
Otros Diccionarios
⚙ Diccionario de Interfaces de Programación? Diccionario de Tecnologías de Python