Le modificateur final est utilisé pour éviter une extension des classes ou une modification des méthodes ou des variables.
Lorsque le modificateur final apparaît dans une déclaration de classe, cela signifie que la classe ne peut être étendue.
final class NomClasse { ... }
Une méthode portant le modificateur final ne peut pas être remplacée dans une sous-classe.
final Type nomMethode { ... }
En outre, une méthode finale pourra être optimisée par le compilateur, puisqu'elle ne peut être sous-classée.
Par ailleurs, les méthodes déclarées avec le modificateur static ou private sont implicitement finales.
Une variable dont le modificateur est final, signifie que cette variable sera une constante aussitôt après son affectation.
final Type nomVariable; nomVariable = valeurConstante; final Type nomVariable = valeurConstante;
Le modificateur final peut être appliqué aux arguments d'une méthode, ainsi qu'aux variables locales.
void uneMethode(final char unArgument) { final int variableLocale = 10; for(int i = 0; i < variableLocale; i++) { System.out.println(i + " - " + unArgument + "rn"); } }
Ce type de déclaration permet l'accès des variables locales ou arguments finaux par des classes intérieures locales.