1
Una clase abstracta (abstract) es una clase de la que no se
pueden crear objetos. Su utilidad es permitir que otras clases
deriven de ella, proporcionándoles un marco o modelo que
deben seguir y algunos métodos de utilidad general. En otras
palabras una clase abstracta define una interfaz común para
los diversos miembros de una jerarquía de clases.
La clase abstracta contiene métodos que se definirán en las
subclases.
Todas las clases de la jerarquía pueden usar la misma
interfaz gracias al polimorfismo.
2
Una clase abstracta puede tener métodos declarados como
abstractos, en cuyo caso no se da definición del método. Si una
clase tiene algún método abstracto es obligatorio que la clase
sea abstracta. En cualquier sub-clase este método deberá ser
redefinido, o bien volver a declararse como abstracto (el
método y la sub-clase).
Una clase abstracta puede tener métodos que no son
abstractos. Aunque no se puedan crear objetos de esta clase,
sus sub-clases heredarán el método completamente a punto
para ser utilizado.
Como los métodos static no pueden ser redefinidos, un método
abstract no puede ser static.
3
Si una clase contiene al menos un método abstracto,
entonces es una clase abstracta.
Una clase abstracta es una clase de la que no se pueden
crear objetos, pero puede ser utilizada como clase padre para
otras clases.
Declaración:
abstract class NombreClase {
..............
}
4
• En la programación orientada a objetos, se podría modelar
conceptos abstractos pero no querer que se creen ejemplares
de ellos. Por ejemplo, la clase Number del paquete java.lang
representa el concepto abstracto de número. Tiene sentido
modelar números en un programa, pero no tiene sentido
crear un objeto genérico de números.
• La clase Number sólo tiene sentido como superclase de otras
clases como Integer y Float que implementan números de
tipos específicos.
• Las clases como Number, que implementan conceptos
abstractos y no deben ser ejemplarizadas, son
llamadas clases abstractas. Una clase abstracta es una clase
que sólo puede tener subclases no puede ser ejemplarizada.
5
6
7