Saltar la navegación

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.

Por ejemplo, se tiene la clase Cuadrado que extiende a la clase Figura.

Si se intenta extender la clase Cuadrado el IDE o el compilador daría un error similar:

Análogamente, un método declarado como final no puede ser redefinido por una clase que derive de su propia clase.

Por ejemplo, se tiene el método funcionFinal() en la clase Figura:

Si se intentara sobrescribir, nos daría un error similar: