Comment annoter une redéfinition avec @Override pour la sécuriser ?
@Override immédiatement avant la déclaration de la méthode redéfinieSavoir utiliser @Override pour sécuriser une redéfinition et détecter les erreurs de signature dès la compilation.
Savoir utiliser @Override pour sécuriser une redéfinition et détecter les erreurs de signature dès la compilation.
L'annotation @Override placée avant une méthode demande au compilateur de vérifier qu'elle redéfinit bien une méthode héritée ; sans elle, une faute de frappe crée silencieusement une nouvelle méthode au lieu de redéfinir l'héritée.
@Override sur la ligne précédant la déclaration de la méthode dans la sous-classe.Redéfinir void affiche() de Vehicule dans Voiture en utilisant @Override.
Signature de la méthode dans Vehicule : void affiche() (type void, pas de paramètre).
class Vehicule {
void affiche() { System.out.println("Vehicule"); }
}
@Override sur la ligne précédant la déclaration de la méthode dans la sous-classe.Ajouter @Override avant la redéfinition dans Voiture.
class Voiture extends Vehicule {
int nombrePlaces;
@Override
void affiche() {
System.out.println("Voiture : " + nombrePlaces + " places");
}
}
Le compilateur vérifie que affiche() est bien héritée de Vehicule. Si on avait écrit affich() par erreur, @Override aurait signalé l'erreur.
// Sans @Override, ceci compile silencieusement (nouvelle méthode) :
class VoitureBug extends Vehicule {
void affich() { ... } // faute, non détectée
}
// Avec @Override, l'erreur est détectée immédiatement.
@Override vérifie à la compilation que affiche() redéfinit bien une méthode héritée.
Redéfinir String cri() de Animal dans Chien avec @Override, et montrer ce qui se passe si on écrit String cris() par erreur.
Redéfinir double aire() de Forme dans Cercle avec @Override.
Crée ton compte gratuit pour accéder à la fiche et aux exercices