Classe final en Java

Rupam Yadav 12 octobre 2023
Classe final en Java

Ce tutoriel reprend le sujet de la classe finale avec un exemple. Le final est un mot-clé en Java qui peut être utilisé dans différents contextes avec des variables, des méthodes et des classes.

Il restreint l’accès dans tous les contextes dans une certaine mesure. Nous discuterons de la classe final.

Utilisez la classe final pour restreindre la classe en Java

Une classe avec le mot-clé final est appelée une classe final. Nous utilisons le mot-clé final avec une classe pour restreindre la classe à hériter par d’autres classes.

Nous rendons la classe final lorsque nous voulons sécuriser des extensions. L’un de ses avantages est la sécurité car une classe final est immuable, ce qui ne peut pas être modifié.

Dans l’exemple ci-dessous, nous avons deux classes. La première classe ExampleClass1 a la méthode main(), tandis que dans la deuxième classe ExampleClass2, nous utilisons le mot-clé final pour en faire une classe final.

Lorsque nous étendons ExampleClass2 à l’aide du mot-clé extends dans ExampleClass1, nous obtenons une erreur dans la sortie indiquant que nous ne pouvons pas hériter d’une classe final.

class ExampleClass1 extends ExampleClass2 {
  public static void main(String[] args) {}
}

final class ExampleClass2 {
  int abc = 30;
}

Production:

java: cannot inherit from final com.tutorial.ExampleClass2

Nous ne pouvons pas étendre une classe final, mais que se passe-t-il si nous voulons accéder à une propriété ou une méthode de la classe ?

Notez que la classe ne peut pas être étendue lors de l’utilisation du mot-clé final, mais nous pouvons créer son objet pour accéder à ses fonctions et variables.

Il y a deux classes dans l’exemple ; l’une est la classe final ExampleClass2 tandis qu’une autre classe ExampleClass1 est nécessaire pour que la méthode main() s’exécute.

Nous créons un objet de la classe ExampleClass2 puis imprimons la valeur de abc, une variable entière.

Nous pouvons accéder à la classe et à sa variable même lorsqu’elles sont finales car nous n’utilisons pas l’héritage ici.

class ExampleClass1 {
  public static void main(String[] args) {
    ExampleClass2 exampleClass2 = new ExampleClass2();
    System.out.println(exampleClass2.abc);
  }
}

final class ExampleClass2 {
  int abc = 30;
}

Production:

30
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn