2010-10-06 21 views
3

Devrais-je mettre la balise @Override si j'implémente une méthode d'interface? Je sais que la balise @Override devrait être là quand vous surchargez une méthode de super classe (pas une interface). Mais qu'en est-il de la mise en œuvre d'une méthode d'interface?Dois-je utiliser la balise @Override lors de l'implémentation d'une méthode d'interface?

+0

double possible - http://stackoverflow.com/questions/212614/should-a-method-that-implements-an-interface-method-be-annotated-with-override/212624#212624 – jjnguy

Répondre

7

Eh bien, yes:

Vous devriez @Override utiliser chaque fois que possible . Il empêche les erreurs simples d'être faites. Exemple:

@Override 
public boolean equals(MyObject mObj){ 
    // code ... 
} 

Cela ne compile pas parce qu'il ne pas correctement surchargent equals.

ira de même pour les méthodes qui implémentent une interface (1.6 et au-dessus uniquement) ou remplacez la méthode d'une classe super.

+0

Mais comment viennent NetBeans IDE (et maintenant l'éclipse Helios) se plaint quand je fais quelque chose comme: nouveau Comparator () { @Override public int comparer (LHS obj, obj) {rhs ..... }} L'EDI suggère d'enlever le tag @Override – dolaameng

+0

@dolaa, quelle version de java utilisez-vous? 1.5 ne permet pas l'implémentation de l'interface d'annotation comme ceci. – jjnguy

+1

Mais, vous devriez certainement le faire si vous utilisez 1.6 – jjnguy