Puede contener variables de instancias, constructores, finalizador y métodos no abstractos
Puede contener un(os) método(s) abstracto(s)
Si la clase contiene un método abstracto, entonces la clase se debe declarar abstracta
No se puede convertir en instancia un objeto de una clase abstracta
Solo se puede declarar una variable de referencia de un tupo de clase abstracta
Las clases abstractas se utilizan como superclases de las cuales otras clases dentro del mismo contexto se derivan
Sirven como marcadores de campos para almacenar miembros comunes para todas las subclases
Se pueden emplear para redorzar subclases de manera que proporcionen ciertos métodos
Un método abstracto es vacío, no posee cuerpo, por lo cual no puede realizar ninguna acción
La utilidad de un método abstracto es definir qué se debe hacer pero no el cómo se debe hacer.
Ejemplo
Clase figura, cada figura posee su propia formula para calcular su área.
No es recomendable empezar a heredar porque las clases tendrian que sobre escribir el etodo área e implementar su propia formula para poder calcular el area
Se puede convertir el metodo convencional en un metodo abstracto
Un método que defina que hacer, pero no cómo se deba hacer
Referencias
Velenzuela, F. (2012). Programación java. Cengage Learning. pag 674-678. Diponible en: https://ezproxy.ucentral.edu.co:2055/stage.aspx?il=&pg=&ed=
García, E. (2020). Diferencia Entre Clases Abstractas E Interfaces En Java. Disponible en : https://codigofacilito.com/articulos/clases-abstractas-interfaces-java