Concepto
Hay ocasiones, cuando se desarrolla
una jerarquía de clases en que algún comportamiento está presente en todas
ellas pero se materializa de forma distinta para cada una. Por ejemplo,
pensemos en una estructura de clases para manipular figuras geométricas. Podríamos
pensar en tener una clase genérica, que podría llamarse FiguraGeometrica y una
serie de clases que extienden a la anterior que podrían ser Circulo, Poligono,
etc. Podría haber un método dibujar dado que sobre todas las figuras puede
llevarse a cabo esta acción, pero las operaciones concretas para llevarla a
cabo dependen del tipo de figura en concreto (de su clase). Por otra parte la
acción dibujar no tiene sentido para la clase genérica Figura Geometrica,
porque esta clase representa una abstracción del conjunto de figuras posibles.
Para resolver esta problemática Java
proporciona las clases y métodos abstractos. Un método abstracto es un método
declarado en una clase para el cual esa clase no proporciona la implementación
(el código). Una clase abstracta es una clase que tiene al menos un método
abstracto. Una clase que extiende a una clase abstracta debe implementar los
métodos abstractos (escribir el código) o bien volverlos a declarar como
abstractos, con lo que ella misma se convierte también en clase abstracta
Las clases abstractas en java
Una de las características más útiles de cualquier lenguaje
orientado a objetos es la posibilidad de declarar clases que definen como se
utiliza solamente, sin tener que implementar método. Esto en Java se hace
mediante interfaces y con clases abstractas.
Una clase
abstracta es una clase de la que no se puede crear objetos. La utilidad de
estas clases estriba en que otras clases hereden de ésta, por lo que con ello
conseguiremos reutilizar código. Para declarar una clase como abstracta utilizamos
la palabra clave abstract.
Los métodos para
los que no aporte una implementación serán declarados a su vz abstractos. Si
una clase tiene un método abstract es obligatorio que la clase sea abstract.
Todas las subclases que hereden de una clase abstracta tendrán que redefinir
los métodos abstractos dándoles una implementación. En el caso de que no
implementen alguno de esos métodos la clase hija también será abstracta y
tendrá que declararse como tal (tanto la clase como los métodos que siguen
siendo abstractos).
En método abstract
no pude ser static, ya que estos no pueden ser redifinidos por las subclases.
No hay comentarios:
Publicar un comentario