Problème : extends Et implements ..

Résolu
Bonjour,

Je débute sur java et je me trouve bloquée devant un petit problème que je n'arrive pas à résoudre :s

Voilà, je dois créer deux classes "Employe" et "Client" qui extends de "Personne", et implémenter l'interface Comparable pour trier les Employe et les Client selon un critère que je déterminerai ..

Voilà mes en-têtes :

public class Client extends Personne
{
// Code
public int compareTo(Personne Pers)
    {
    // Code
    }
}

public class Employe extends Personne
{
// Code
public int compareTo(Employe Emp)
    {
    // Code
    }
}

public class Personne implements Comparable
{
// Code
public int compareTo(Client Cl)
    {
    // Code
    }
}

public interface Comparable 
{
 public int compareTo(Personne Pers);
 public int compareTo(Client Cl);
 public int compareTo(Employe Emp);
} 


Et j'obtiens l'erreur :
"The type Personne must implement the inherited abstract method Comparable.compareTo(Object)"

A l'aide ! Merci beaucoup d'avance :D

1 réponse

  1. Modérateur
    Bonjour,

    L'interface Comparable existe déjà, tu n'as pas à la réécrire toi même.
    https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

    public class Personne implements Comparable<Personne>
    {
        @Override
        public int compareTo(Personne p)
        {
            // Code
        }
    }
    0
    1. Aah oui !

      J'ai supprimé l'interface Comparable et j'ai ajouté le "<Personne>" comme tu l'as suggéré (même si je ne comprend pas pourquoi) .. mais le message d'erreur s'affiche toujours, plus un autre :
      "Syntax error, parameterized types are only available if source level is 1.5"
      (Il fait référence à la ligne que je viens de modifier)

      :s
      0
    2. Modérateur
      Le nouveau message signifie que tu codes en Java 4 ou moins !!!
      La dernière version de Java c'est Java 8, au pire tu pourrais coder en Java 6, mais en dessous de 5, ça fait vraiment vieillot...
      0
    3. Aah ok, je vais voir ça, merci :D

      Mais pour le premier message, que dois-je faire ?
      0
    4. Modérateur
      Regarde s'il apparaît toujours avec une version plus récente de Java.
      Il demande à ce que tu implémentes un compareTo(Object) mais en Java 5+ ce sera un compareTo(E) ce qui pourrait expliquer le message.
      0
    5. Je vais l'installer et voir .. merci :)
      0