Leçon 27 : Le mot-clé final
Le mot-clé final est un modificateur n'agissant pas sur l'accès, utilisé pour restreindre ou définir quelque chose qui ne peut pas être modifié.
1. Variables final (Constantes)
Si une variable est déclarée final, sa valeur ne peut plus être réassignée après l'initialisation. Elles sont souvent utilisées en conjonction avec static pour créer de véritables constantes au moment de la compilation.
java // Une variable final non statique doit être initialisée une fois par objet public final int MAX_USERS = 100;
// Une constante standard (Convention : static final, SCREAMING_SNAKE_CASE) public static final double INTEREST_RATE = 0.05;
// Exemple de tentative de réassignation : MAX_USERS = 200; // ERREUR DE COMPILATION !
2. Méthodes final
Si une méthode est déclarée final, elle ne peut être redéfinie par aucune sous-classe. Cela garantit que l'implémentation de la méthode reste inchangée à travers la hiérarchie d'héritage (souvent utilisé pour la logique de sécurité critique).
java public class Parent { public final void criticalLogic() { // Implémentation qui ne doit jamais changer } }
public class Child extends Parent { // public void criticalLogic() { /* ERREUR ! Impossible de redéfinir une méthode final */ } }
3. Classes final
Si une classe est déclarée final, elle ne peut pas être étendue (ne peut pas avoir de sous-classes). Cela est souvent fait pour des raisons de sécurité ou lorsque la conception ne doit pas permettre de personnalisation, comme la classe intégrée String en Java.
java public final class ConfigurationSettings { // ... }
// public class BadAttempt extends ConfigurationSettings { /* ERREUR ! */ }