IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème de classe et interface


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème de classe et interface
    Bonjour,
    J'ai une interface interf1 et une classe c1 qui doit implémenter les méthodes de cette interface. Quand, dans la classe c1, j'importe (import interf1), on me déclare une erreur.
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux nous copier ton code exact (entre balises CODE - Voir bouton dans l'éditeur) et le message d'erreur que tu obtiens, s'il te plait ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    package premier.projet;
     
     
    public interface interfacecalcul {
        double ajouter(int i,int j);
        double soustraction(int i,int n);
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    package premier.projet;
     
    import interfacecalcul;
     public class C2 implements interfacecalcul {
        public int ajouter(int i,int j){
        return i+j+10;
        }
        public int soustraction(int a,int p){
        return a*b*2;
        }
     
    }
    ERREUR:C2 is not abstract and does not override abstract method soustraction(int,int) in interfacecalcul

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Les méthodes de l'interface retournent du double, donc les méthodes correspondantes dans la classe concrète doivent retourner du double. Les méthodes de l'interface doivent être complètement implémentées avec les mêmes types (même signature). Il y a un second problème : la variable b dans la méthode soustraction n'existe pas (c'est probablement p).

    Quelques remarques annexes :

    • L'import est inutile car la classe et l'interface sont dans le même package ;
    • Les conventions de nommage pour les noms d'interface sont les mêmes que pour les noms de classe : UpperCamelCase ;
    • Il est recommandé d'annoter les implémentations concrètes par @Override (même si dans ton cas, c'est moins utile que dans le cas général) ;
    • Aère plus et indente ton code pour une meilleur lisisbilité ;
    • Accessoirement, les noms de méthodes devraient être cohérents (si ajouter, alors soustraire, ou alors addition et soustraction). Et cohérente avec ce qu'elles font : la soustraction devrait faire une soustraction et pas une multiplication, à priori.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package premier.projet;
     
    public interface InterfaceCalcul {
     
        double ajouter( int i, int j );
     
        double soustraction( int i, int n );
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    package premier.projet;
     
    public class C2 implements InterfaceCalcul {
     
        @Override
        public double ajouter( int i, int j ) {
     
            return i + j + 10;
     
        }
     
        @Override
        public double soustraction( int a, int p ) {
     
            return a * p * 2;
     
        }
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Problème d'héritage classes et interfaces
    Par touftouf57 dans le forum C#
    Réponses: 3
    Dernier message: 18/04/2011, 14h38
  2. Problème de class et d'interface
    Par Tomcat31 dans le forum C#
    Réponses: 2
    Dernier message: 13/09/2008, 16h30
  3. Réponses: 6
    Dernier message: 19/04/2007, 15h03
  4. problème avec classe interface
    Par bandit_debutant dans le forum Langage
    Réponses: 6
    Dernier message: 05/11/2006, 20h54
  5. Problème de classe
    Par DeusXL dans le forum DirectX
    Réponses: 15
    Dernier message: 04/12/2005, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo