En el caso de HttpServlet
, el punto es que los programadores de servlets normalmente no quieren que su servlet soporte todos los 4 de los principales métodos HTTP (POST, GET, PUT, DELETE), por lo que sería molesto hacer que doGet()
, doPost()
, etc. métodos abstractos, ya que los programadores se verían obligados a implementar métodos que no necesitan. Por lo tanto, HttpServlet
proporciona una implementación predeterminada para todos los métodos que no hace nada excepto devolver un código de estado de error al cliente. Los programadores pueden anular los métodos que necesitan y no preocuparse por el resto. Pero en realidad el uso de la clase HttpServlet
en sí no tiene sentido (ya que no sirve de nada), por lo que es abstract
.
Y ahí tienes un gran ejemplo para cuando puede tener sentido tener una clase abstracta sin ningún método abstracto.
Véase también http://stackoverflow.com/questions/362446/abstract-class-with-all-concrete-methods –