¿Por qué se permiten miembros protegidos en las clases finales?¿Por qué se permiten los miembros protegidos en las clases finales de Java?
¿No debería ser un error en tiempo de compilación?
Editar: como han señalado las personas, puede obtener el mismo acceso al paquete utilizando el modificador predeterminado en su lugar. Debería comportarse exactamente de la misma manera, porque protected es solo default + subclases, y el modificador final niega explícitamente la creación de subclases, por lo que creo que la respuesta es más que solo proporcionar el mismo acceso al paquete.
Una variante de la pregunta sigue siendo válida: ¿Por qué podemos tener métodos static final privadas? "Privado" implica "final" y "estático", ¿verdad? ¿No es redundante? – gawi
@gawi: No estoy seguro de cómo interpretar su comentario, pero 'privado' ciertamente no implica' static'/'final'. – BalusC
@gawi: Privado implica no virtual, no estático, y no tiene sentido decir que "privado implica final" ya que "final" solo tiene significado con respecto a los métodos heredados. Estoy de acuerdo, ya que no puedo encontrar una razón válida para usar "final" en una declaración de método privado. –