Annotation Java @Override

1. Vue d'ensemble

Dans ce tutoriel rapide, nous verrons comment utiliser l' annotation @Override .

2. Annotation @Override

Dans une sous-classe, nous pouvons remplacer ou surcharger les méthodes d'instance. Le remplacement indique que la sous-classe remplace le comportement hérité. La surcharge se produit lorsqu'une sous-classe ajoute un nouveau comportement.

Parfois, nous surchargerons par accident alors que nous avions réellement l'intention de passer outre. Il est facile de faire cette erreur en Java:

public class Machine { public boolean equals(Machine obj) { return true; } @Test public void whenTwoDifferentMachines_thenReturnTrue() { Object first = new Machine(); Object second = new Machine(); assertTrue(first.equals(second)); } }

Étonnamment, le test ci-dessus échoue. Cela est dû au fait que cette méthode equals surcharge l' Object # equals et ne la remplace pas.

Nous pouvons utiliser l' annotation @Override sur les méthodes héritées pour nous protéger de cette erreur.

Dans cet exemple, nous pouvons ajouter l' annotation @Override au-dessus de la méthode equals :

@Override public boolean equals(Machine obj) { return true; }

À ce stade, le compilateur lèvera une erreur, nous informant que nous ne remplaçons pas les égaux comme nous le pensons.

Ensuite, nous pouvons corriger notre erreur:

@Override public boolean equals(Object obj) { return true; }

En raison de la facilité avec laquelle il est possible de surcharger accidentellement, il est courant d'utiliser l' annotation @Override sur toutes les méthodes héritées.

3. Conclusion

Dans ce guide, nous avons vu comment l'annotation @Override fonctionne en Java.

Le code source complet des exemples est disponible à l'adresse over sur GitHub.