Comment empêcher la redéfinition d'une méthode avec le mot-clé final ?
final dans la déclaration de la méthode cibleSavoir utiliser final sur une méthode pour interdire sa redéfinition dans les sous-classes.
Savoir utiliser final sur une méthode pour interdire sa redéfinition dans les sous-classes.
Le mot-clé final placé avant le type de retour d'une méthode interdit à toute sous-classe de la redéfinir ; le compilateur signale une erreur si on tente de le faire.
final avant le type de retour dans la déclaration : public final TypeRetour m(args) { ... }.Protéger la méthode String getImmatriculation() de Vehicule pour qu'aucune sous-classe ne puisse la redéfinir.
Repérer la méthode getImmatriculation() dans Vehicule.
class Vehicule {
String immatriculation;
String getImmatriculation() {
return immatriculation;
}
}
final avant le type de retour dans la déclaration : public final TypeRetour m(args) { ... }.Ajouter final avant le type de retour.
class Vehicule {
String immatriculation;
final String getImmatriculation() {
return immatriculation;
}
}
Toute tentative de redéfinition dans une sous-classe produit une erreur.
class Voiture extends Vehicule {
@Override
String getImmatriculation() { // ERREUR DE COMPILATION
return "XX-" + immatriculation;
}
// cannot override final method
}
final sur getImmatriculation() interdit toute redéfinition dans les sous-classes.
Protéger double calculTaux() de la classe Impot pour garantir que le calcul ne soit jamais altéré par une sous-classe.
Montrer la différence entre une méthode final et une méthode non-final : la non-final peut être redéfinie, la final non.
Crée ton compte gratuit pour accéder à la fiche et aux exercices