Salut,
Je ne suis pas expert mais la première question qui me vient à l'esprit c'est "Pourquoi pas d'héritage ?"
Ca parait être la solution idéale non ?
J'ai ptet pas très bien compris mais si tu fais une classe AB (qui contient uniquement tout ce qui est commun aux classes A et B, l'intersection des deux d'un certain point de vue), qui implémente deux interfaces A et B (qui elles ne contiennent que ce qui est spécifique à A et B) ça ressemble à une solution.
Si on fait ça (et que je raconte pas n'importe quoi) tu devrais pouvoir faire des trucs genre :
1 2 3 4
| A a = new AB();
B b = new AB();
B bb = (B) a; // pour voir un A comme un B
A aa = (A) b; // et l'inverse |
Par contre (encore une fois je croise les doigts, je crois pas dire de connerie mais j'ai rien testé), je pense que ça ça marche pas :
1 2 3
| AB ab = new A();
AB aabb = new B();
// Je vois pas trop comment java pourrait comprendre ça vu qu'il s'agit là d'instancer une interface |
edit : En fait je réalise que là il n'y a effectivement pas d'héritage à proprement parler puisqu'il s'agit d'interfaces, mais la différence est légère (en dehors du fait qu'on peut pas hériter de plusieurs classes alors qu'on peut implémenter plusieurs interfaces).
Partager