Comment empêcher la redéfinition d'une méthode avec le mot-clé final ?
final pour interdire toute sous-classeSavoir utiliser final sur une classe pour interdire toute spécialisation par héritage.
Savoir utiliser final sur une classe pour interdire toute spécialisation par héritage.
Le mot-clé final placé avant class interdit la création de sous-classes : toute tentative d'utiliser extends sur une classe final déclenche une erreur de compilation.
final avant le mot-clé class dans la déclaration : public final class NomClasse { ... }.extends sur cette classe provoque une erreur de compilation.Déclarer la classe String comme final (ce qu'elle est en réalité en Java) et montrer qu'on ne peut pas en hériter.
La classe String est une classe dont on ne veut pas qu'elle soit spécialisée.
// En Java, String est déclarée ainsi dans la bibliothèque :
public final class String { ... }
final avant le mot-clé class dans la déclaration : public final class NomClasse { ... }.Déclarer sa propre classe final pour l'empêcher d'être étendue.
public final class MonEmail {
String adresse;
MonEmail(String a) { adresse = a; }
}
extends sur cette classe provoque une erreur de compilation.Tentative d'héritage → erreur de compilation.
class MonEmailPro extends MonEmail { // ERREUR
// cannot inherit from final MonEmail
}
MonEmail est final : aucune sous-classe ne peut en hériter.
Créer une classe MotDePasse final pour s'assurer qu'aucune sous-classe ne puisse modifier son comportement de vérification.
Comparer une classe final et une classe ordinaire : montrer que l'une peut être étendue et l'autre non.
Crée ton compte gratuit pour accéder à la fiche et aux exercices