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.
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.
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.
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); }
ERREUR:C2 is not abstract and does not override abstract method soustraction(int,int) in interfacecalcul
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; } }
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.
Partager