Salut tous,
J'ai un problème, je cherche à effectuer un héritage multiple. Par exemple une classe C doit hériter des deux classes A et B. Apparemment on ne peut pas le faire mais il y aura forcément une solution de secours
Merci d'avance.
Version imprimable
Salut tous,
J'ai un problème, je cherche à effectuer un héritage multiple. Par exemple une classe C doit hériter des deux classes A et B. Apparemment on ne peut pas le faire mais il y aura forcément une solution de secours
Merci d'avance.
On ne peut pas le faire, tout court ^^
Soit tu revois la conception (peut être que de la composition serait plus approprié que de l'héritage dans le cas en question), afin de te passer de ce besoin d'héritage multiple, soit tu passes par des interfaces (une classe pouvant implémenter plusieurs interfaces).
L'héritage multiple cause généralement plus de problèmes qu'il n'en résout, c'est probablement pour ça que les concepteurs de .NET ont décidé de ne pas le supporter... D'ailleurs il me semble que la plupart des langages objets modernes ne le supportent pas non plus
Tu ne peux donc hériter que d'une seule classe, en revanche tu peux implémenter d'autant d'interfaces que tu veux (et éventuellement déléguer l'implémentation de ces interfaces à des classes existantes, c'est la composition)
Si tu nous décrivais un peu ce que veux faire, on pourrait sans doute te suggérer une solution plus appropriée
bonjour,
si tu as besoin d'heriter de 2 classes A et B c'est que
1 cas:
- les classes ancetres de A et B(dans le cas ou tu as prevu 2 classes ancetres anstraites "MustInherit")devraient etre une seule.
-si tel est le cas fusionne les 2 ancetres en un seul(fais remonter l'heritage d'abord,ensuite descend)
2 cas :
- tu n' as pas prevu une classe ancetre commune "MustInherit" de A et B alors il faut en creer une avec les membres,proprietes et methodes overridables (à implementer) par fusion de celles des classes A et B.
Dans tous les cas le code deja ecrit pour A et B est gagnee....si tel est l'objectif ,je presume de ta question ,car l'heritage n'est interessant que s'il permet un gain de code dans l'ecriture de code....
Son inconvenient,c'est un echafaudage fragile et irreversible,dont il ne faut pas abuser....
bon code....
merci a tous et a toi MABROUKI
mais je ne vois pas pourquoi tu dis que les classes A et B doivent avoir une ou plusieur classe ancetre que ceux soi "mustinherit" ou non
bonjour tonnebre
puisqu'on ne peut heriter que d'une seule classe (c.à.d qu'une classe derivee ne peut avoir qu'un seule classe ancetre) c'est que il y aura forcement un seul ancetre commun.
l'ancetre commun qui satisfait à cette condition est celui qu'on obtient :
-par la creation d'un ancetre commun X qui fusionne les props,methodes etc ...de A & B et on heriter C de cet ancetre X.
bon code..........