web-dev-qa-db-fra.com

Avons-nous vraiment besoin de @Override et ainsi de suite lorsque le code Java?

Duplicata possible:
Quand utilisez-vous l'annotation @Override de Java et pourquoi?

Je me demande quelle est la fonctionnalité d'ajout de @Override devant le code que nous aimerions remplacer est. J'en ai fini avec et sans, et il semblait que tout allait bien (du moins pour moi).

42
zfm

Ce n'est pas nécessaire, mais il est fortement recommandé. Cela vous empêche de vous tirer une balle dans le pied. Cela permet d'éviter le cas lorsque vous écrivez une fonction qui, selon vous, en remplace une autre mais que vous avez mal orthographié quelque chose et que vous obtenez un comportement complètement inattendu.

47
James Kingsbery

quelles sont les fonctionnalités de l'ajout de @Override

Il permet au compilateur de vérifier pour vous lorsque vous dites (en annotant) qu'une méthode spécifiée est censée remplacer une méthode de superclasse (ou implémenter une méthode d'interface dans Java 6 ou version ultérieure). Si en fait, la méthode ne remplace pas une méthode de superclasse (ou n'implémente pas de méthode d'interface), le compilateur signalera cela comme une erreur. Cela indique souvent que vous avez une faute de frappe dans le nom de la méthode ou une erreur dans la signature de la méthode.

Avons-nous vraiment besoin de @Override

En avez-vous besoin? Absolument pas, mais c'est un tel pas cher moyen de

  • transmet explicitement au lecteur humain qu'il s'agit d'une méthode primordiale, et
  • attrape un bogue au moment de la compilation qui pourrait prendre au moins quelques cycles cérébraux à attraper au moment de l'exécution ne fois que vous savez même chercher it

... et encore moins cher lorsque votre IDE vous aide à l'inclure ...

31
Bert F

Il est recommandé car il permet de gérer la cohérence. Imaginez que quelqu'un change le nom de la méthode de superclasse (et seulement là, sans effectuer de changement de nom dans les classes en fonction de ce qui est assez hypothétique :)), alors vous serez le premier à savoir en raison d'erreurs de compilation.

4
Arturs Licis

La seule différence serait que si vous annotez une méthode avec @Override et que vous ne surchargez rien, le compilateur se plaindra.

Vérifiez Quand utilisez-vous l'annotation de remplacement javas et pourquoi?

3
jhurtado

Cela m'a aidé plusieurs fois à éviter les fautes d'orthographe/différences de casse dans les noms de méthode. Sans elle, c'est l'un de ces bogues ennuyeux qui peuvent prendre des années à traquer.

Cela n'ajoute aucune différence fonctionnelle, mais dire au compilateur que vous pensez que vous remplacez une méthode afin qu'il puisse se plaindre si vous ne l'êtes pas est très utile lorsque vous avez foiré quelque part!

1
Michael Berry

Il est fortement recommandé de l'utiliser car il augmente la sous-adaptabilité du code ur et aide les autres à maintenir le code ur aussi.

1
palAlaa