Considérons que j'ai deux interfaces ayant les mêmes noms de variables et que ce nom de variable est identique à l'un des deux noms d'interfaces.
Par exemple.,Ambiguïté dans la variable d'interface Java
interface Parent1{
public static final String Parent1= "VALUE1"; // Variable Parent1 is same as interface name
}
interface Parent2{
public static final String Parent1= "VALUE2";
}
Dites si j'ai une classe qui implémente les deux interfaces ci-dessus et si je dois accéder à la Parent1 variable dans l'interface Parent1, comment puis-je accéder.
Par exemple.,
class Child implements Parent1, Parent2{
void myCode(){
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
System.out.println(Parent2.Parent1); // Does compile
}
}
Je connais les noms de variables ne suit pas la norme. Mais je voulais comprendre comment Java surmonte cette ambiguïté.
Editer:
Les gens disent que ça marche (dans les commentaires). Mais quand je l'exécutaient dit
/Child.java:9: error: reference to Parent1 is ambiguous
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
^
both variable Parent1 in Parent1 and variable Parent1 in Parent2 match
/Child.java:9: error: cannot find symbol
System.out.println(Parent1.Parent1); // Does not compile. Because Parent1(before dot) is considered as variable
^
symbol: variable Parent1
location: variable Parent1 of type String
2 errors
Compile bien pour moi. –
il fonctionne où vous faites face à un problème. Il fonctionne – iamsankalp89
Quelle version de Java utilisez-vous et quel compilateur? Aussi ... qui est >> vous << en utilisant @JoeC? –