Le mot clé final en Java

Le mot-clé final en Java est un modificateur utilisé pour empêcher la modification d’un code ou d’une valeur. Il est possible d’utiliser ce mot-clé dans 3 contextes :

  • Mot-clé final en tant que modificateur de variable
  • Mot clé final en tant que modificateur de méthode
  • Mot-clé final en tant que modificateur de classe

Chaque contexte a sa propre signification et ses restrictions implicites. Ils sont discutés en détail ci-dessous.
 
Afficher un triangle d'étoiles en Java

Mot-clé final en tant que modificateur de variable

Chaque contexte a son propre but. Le mot-clé final, lorsqu’il est utilisé avec une variable, il est spécifiquement destiné à empêcher l’utilisateur de modifier la valeur. Une variable déclarée final, une fois initialisée, sa valeur ne peut être changée.

Si la variable final vient d’être déclarée mais non initialisée, il est permis d’attribuer une valeur à une variable final une fois dans le code. Toute modification de la valeur d’une variable final entraînera une erreur de compilation.

Par exemple, le code ci-dessous affichera une erreur lors de la compilation si vous tentez de le compiler.

public class FinalStr {

	final String str = "Hello World!";
	
	public FinalStr() {
		str = "Welcome"; //la variable str ne peut pas être modifiée
	}

}

 

Mot clé final en tant que modificateur de méthode

Une méthode déclarée final ne peut être redéfinée. Ce qui signifie que même une sous-classe peut appeler la méthode final de la classe parente sans aucun problème, mais elle ne peut y redéfinir.

Par exemple, le code ci-dessous affichera une erreur lors de la compilation si vous tentez de le compiler.

class Bar{  
   final void display(){
      System.out.println("Méthode de la classe Bar");
   }  
}  
	     
class Foo extends Bar{  
   void display(){
      System.out.println("Méthode de la classe Foo");
   }  
	     
   public static void main(String args[]){  
      Foo obj= new Foo();  
      obj.display();  
   }  
}
Différence entre Surcharge et Redéfinition

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *