Intro
Ma vraie question est à propos de l'utilisation de l'annotation. En essayant de trouver la réponse moi-même, j'ai couru dans plusieurs autres questions. C'est pourquoi il y a aussi des questions liées à ci-dessous. J'espère que ce n'est pas trop confus.
Question
Si une méthode qui implémente une interface de la méthode annotée avec l' @Override
? Eclipse par exemple insère automatiquement un @Override
d'annotation après l'utilisation de la solution Rapide à l'option 'Ajouter, mis en oeuvre méthodes". Est-ce comportement correct?
La javadoc de l' Override
d'annotation dit:
Indique qu'une déclaration de méthode est destinée à remplacer une déclaration de méthode dans une super-classe. Si une méthode est annoté avec ce type d'annotation, mais ne remplace pas une super-classe de la méthode, les compilateurs sont nécessaires pour générer un message d'erreur.
Je ne pense pas qu'une interface est techniquement une super-classe. Ou est-il? Les compilateurs ne génère pas une erreur, au moins lorsque l'annotation est utilisée dans ce cas.
Eclipse peut donner des avertissements si vous omettez cette annotation pour remplacer les "vrais" super-classe de méthodes. Il n'est pas si vous l'omettez, pour les méthodes d'interface. Une autre question a révélé que c'est un glitch dans Eclipse.
La raison de ce qui m'inquiète un peu, c'est que j'essaie d'être cohérent. Mais si l'IDE n'est pas de donner des avertissements lors de l'annotation n'est pas là et génère automatiquement sur l'autre main, la consistance est plutôt difficile.
Edit: Deux articles info: @Override et @Override Snafu