Qu’est-ce que @Override en Java?

Duplication possible:
Quand utilisez-vous l’annotation @Override de Java et pourquoi?

Y a-t-il une raison d’annoter une méthode avec @Override autre que de demander au compilateur de vérifier que la super-classe a cette méthode?

Comme vous le décrivez, @Override crée une vérification au moment de la compilation indiquant que la méthode est remplacée. Ceci est très utile pour vous assurer que vous n’avez pas de problème de signature idiot lorsque vous essayez de remplacer.

Par exemple, j’ai vu l’erreur suivante:

 public class Foo { private Ssortingng id; public boolean equals(Foo f) { return id.equals(f.id);} } 

Cette classe est compilée comme écrit, mais l’ajout de la balise @Override à la méthode equals entraînera une erreur de compilation car elle ne remplace pas la méthode equals sur Object. C’est une erreur simple, mais elle peut échapper à l’œil d’un développeur chevronné

Cela permet non seulement de vérifier le compilateur, bien que cela suffise à le rendre utile; il documente également l’intention du développeur.

Par exemple, si vous remplacez une méthode mais ne l’utilisez pas du type lui-même, quelqu’un qui viendra plus tard au code peut se demander pourquoi il est là. L’annotation explique son objective.

Non, vous avez plutôt bien réussi.

@Override indique l’ intention du compilateur: si vous @Override une méthode @Override , vous avez l’intention de remplacer quelque chose de la super-classe (ou de l’interface, en Java 6). Un bon IDE marquera de manière utile toute méthode qui remplace une méthode sans @Override . La combinaison des deux vous aidera à faire ce que vous essayez.

nope – sauf qu’il améliore également la lisibilité (c’est-à-dire qu’en plus de l’indicateur utilisé par votre IDE, il est facile de voir qu’une méthode a priorité sur une déclaration dans la superclasse)