[JAVA] Truc bizarre avec interface...
Page 1 sur 1•
[JAVA] Truc bizarre avec interface...
- Code:
import java.lang.reflect.Field;
interface A
{
int a=0;
}
interface B extends A
{}
interface C extends A
{}
public class Main implements B, C
{
public static void main(String[] args)
{
for (Field field : Main.class.getFields())
System.out.println(field);
}
}
Bonjour,
Ce code, trouvé sur internet, me pose problème...
Depuis quand les interfaces acceptent des attributs?
J'ai toujours appris qu'une interface n'avait que des méthodes... ou me trompe-je?
Et surtout, quand on implémente une interface, ce n'est pas implements qu'on utilise? et non extends comme dans l'exemple...
Bien à vous.
Herbiti
Herbiti

Herbiti- Messages : 237
Inscrit le : 22 Jan 2008
Age : 21
Prénom : Thibaut
Statut : Etudiant en 3I (2ème réussie mais avec des examens de passage)
Localisation : Zellik
Re: [JAVA] Truc bizarre avec interface...
J'pensais comme toi... peut-être est-ce un autre type d'interface ?
Anthoblack

Anthoblack- Messages : 258
Inscrit le : 11 Mar 2008
Age : 20
Prénom : Anthony
Statut : étudiant
Localisation : Bruxelles
Re: [JAVA] Truc bizarre avec interface...
Herbiti a écrit:
- Code:
import java.lang.reflect.Field;
interface A
{
int a=0;
}
interface B extends A
{}
interface C extends A
{}
public class Main implements B, C
{
public static void main(String[] args)
{
for (Field field : Main.class.getFields())
System.out.println(field);
}
}
Bonjour,
Ce code, trouvé sur internet, me pose problème...
Depuis quand les interfaces acceptent des attributs?
J'ai toujours appris qu'une interface n'avait que des méthodes... ou me trompe-je?
Et surtout, quand on implémente une interface, ce n'est pas implements qu'on utilise? et non extends comme dans l'exemple...
pour ce qui concerne la spécialisation d'interface à l'aide d'extends, ça me semble ok. par contre, pour le coup de l'attribut, je suis assez étonné. il me semblait me souvenir que seuls des attributs statiques et finaux (des constantes de classe donc) étaient possibles au sein d'une interface

Re: [JAVA] Truc bizarre avec interface...
ok. le problème de l'attribut d'interface non constant est résolu. en fait, leur nature static final est implicite. essaye d'ailleurs de modifier la valeur de l'attribut a dans le code que tu donnes : le compilateur hurle 
c'est ici que j'ai trouvé la réponse. dans les exemples que je connaissais, le static final apparaissait toujours explicitement...

c'est ici que j'ai trouvé la réponse. dans les exemples que je connaissais, le static final apparaissait toujours explicitement...








