Bonjour,

J'aimerai connaître le comportement de votre compilateur java sur le programme suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
interface A {}
interface B {}
interface C extends A,B {}
interface Super1 {
	public A get();
}
interface Super2 {
	public B get();
}
public interface Child extends Super1, Super2 {
	public C get();
}
Chez moi eclipse 3.2.2 ne pose pas de problème, mais le jdk de sun (javac 1.6.0) me retourne l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Child.java:16: types Super2 and Super1 are incompatible; both define get(), but with unrelated return types
interface Child extends Super1, Super2 {
^
1 error
Ce problème de sous-typage variant/contravariant ne devrait-il pas être définit dans la spécification de Java ?