Erreur @Override dans Eclipse : comment vaincre "Must Override a Superclass Method"

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : pourquoi Eclipse vous crie dessus ?

\n\n

Vous avez importé un projet existant dans Eclipse, cliqué sur Build, et soudain — des dizaines de croix rouges. Erreur : "Must Override a Superclass Method". Familier ? Si vous apprenez à programmer en Java ou travaillez avec du code existant, cette situation est un véritable frein. Surtout lorsque le projet se compile parfaitement dans un autre IDE ou via Maven.

\n\n

Sur Stack Overflow, cette question a recueilli des milliers de vues. Et pour cause : le problème est sournois. Eclipse est un environnement puissant, mais ses paramètres de compilateur peuvent jouer un mauvais tour. Dans cet article, nous verrons d'où vient l'erreur "Must Override a Superclass Method", et surtout, comment la corriger une fois pour toutes.

\n\n

Nous examinerons les trois causes principales et fournirons des instructions étape par étape avec des exemples de code réels. Vous apprendrez à configurer Eclipse pour qu'il ne se plaigne pas d'un code correct, et comment éviter ce problème à l'avenir.

\n\n

Que signifie l'erreur "Must Override a Superclass Method" ?

\n\n

L'erreur se produit lorsque vous utilisez l'annotation @Override avant une méthode qui, selon Eclipse, ne redéfinit pas une méthode de la classe parente ou de l'interface. En réalité, le problème ne vient souvent pas de votre code, mais des paramètres du compilateur Java dans Eclipse.

\n\n

L'annotation @Override a été introduite en Java 5 (1.5) pour les méthodes redéfinissant les méthodes d'une superclasse. Mais en Java 6, son utilisation a été autorisée également pour les méthodes implémentant des interfaces. Si votre projet est configuré pour Java 5, mais que vous écrivez du code pour Java 8 — Eclipse se plaindra.

\n\n

Voici un exemple typique qui provoque l'erreur :

\n\n
public interface Animal {\n    void makeSound();\n}\n\npublic class Dog implements Animal {\n    @Override\n    public void makeSound() {\n        System.out.println("Woof!");\n    }\n}\n
\n\n

Si le niveau de compilation du projet est Java 5, Eclipse dira : "Must Override a Superclass Method". Pourtant, le code est parfaitement correct pour Java 6 et versions ultérieures.

\n\n

Cause 1 : Niveau de compilation incorrect (Compiler Compliance Level)

\n\n

C'est la cause la plus fréquente. Eclipse possède un paramètre Compiler compliance level qui détermine la version de Java qu'il attend. Si vous importez un projet créé dans un autre IDE, ce paramètre est souvent réinitialisé à une version obsolète.

\n\n

Comment corriger :

\n
    \n
  1. Faites un clic droit sur le projet → Properties.
  2. \n
  3. Allez dans Java Compiler.
  4. \n
  5. Décochez "Use compliance from execution environment".
  6. \n
  7. Sélectionnez Compiler compliance level — par exemple, 1.8 ou 11 (selon votre projet).
  8. \n
  9. Cliquez sur Apply and Close.
  10. \n
  11. Recompilez le projet : Project → Clean.
  12. \n
\n\n

Important : Si vous avez plusieurs JDK installés, assurez-vous que dans Installed JREs (Window → Preferences → Java → Installed JREs) la version correcte est spécifiée. Sinon, Eclipse pourrait ne pas trouver le compilateur approprié.

\n\n

Cause 2 : La bibliothèque JRE System Library ne correspond pas au niveau de compilation

\n\n

Parfois, la bibliothèque JRE System Library du projet est une version ancienne (par exemple, J2SE-1.4), alors que vous utilisez dans votre code des annotations de Java 5+. Eclipse détecte cette incohérence et génère l'erreur.

\n\n

Comment corriger :

\n
    \n
  1. Faites un clic droit sur le projet → Build Path → Configure Build Path.
  2. \n
  3. Allez dans l'onglet Libraries.
  4. \n
  5. Trouvez JRE System Library.
  6. \n
  7. Supprimez-la (bouton Remove).
  8. \n
  9. Cliquez sur Add Library → JRE System Library → Next.
  10. \n
  11. Sélectionnez Workspace default JRE (ou la version JDK souhaitée).
  12. \n
  13. Cliquez sur

    Blogs

    Book Recommendations