Problème : extends Et implements ..

Résolu/Fermé
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016 - Modifié par KX le 22/03/2015 à 15:23
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016 - 13 avril 2015 à 16:10
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

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 mars 2015 à 15:25
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
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016
22 mars 2015 à 15:39
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
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 mars 2015 à 15:51
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
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016
22 mars 2015 à 15:59
Aah ok, je vais voir ça, merci :D

Mais pour le premier message, que dois-je faire ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
22 mars 2015 à 16:05
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
Mayusu Messages postés 43 Date d'inscription lundi 8 septembre 2014 Statut Membre Dernière intervention 27 janvier 2016
22 mars 2015 à 16:05
Je vais l'installer et voir .. merci :)
0