Faire la différence entre les méthodes identiques de différentes interfaces
Bonjour,
est-il possible d'implémenter séparément des méthodes provenant d'interfaces différentes mais ayant la même signature ?
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| interface I1
{
void f();
}
interface I2
{
void f();
}
class A implements I1, I2
{
public void f()
{
System.out.println("f");
}
}
public class Test
{
public static void main(java.lang.String[] args)
{
I1 i1 = new A();
I2 i2 = new A();
A a = new A();
i1.f();
i2.f();
a.f();
}
} |
Dans cet exemple les trois appels à "f" sont corrects et invoque tous "A.f".
Mais est-il possible de définir dans "A" les méthodes "I1.f" et "I2.f" en plus de "A.f" afin que :
"i1.f()" invoque l'implémentation par "A" de "I1.f",
"i2.f()" invoque l'implémentation par "A" de "I2.f",
"a.f()" invoque une nouvelle méthode "A.f" n'ayant pas de lien avec "I1.f" et "I2.f" ?
A priori, comme le masquage de méthode n'est pas possible en Java, la dernière proposition n'est pas possible en Java, mais est-il au moins possible d'implémenter "I1.f" et "I2.f" séparément ?
Merci.