Clases y métodos finales
Recuérdese que las variables declaradas como final no pueden cambiar su valor una vez que han sido inicializadas. En este apartado se van a presentar otros dos usos de la palabra final.
Una clase declarada final no puede tener clases derivadas. Esto se puede hacer por motivos de seguridad y también por motivos de eficiencia, porque cuando el compilador sabe que los métodos no van a ser redefinidos puede hacer optimizaciones adicionales.
Análogamente, un método declarado como final no puede ser redefinido por una clase que derive de su propia clase.
Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra