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 :
Dans cet exemple les trois appels à "f" sont corrects et invoque tous "A.f".
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
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(); } }
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.
Partager