C'est a dire ? L'héritage en diamant me semble poser un problème dans l'implémentation du langage, pas pour le programmeur, je me trompe ?
Je ne pense pas, le pb est bien pour le developpeur.
Soit une classe A qui définit une méthode m.
Soit B et C qui héritent de A et qui redéfinissent m.
Soit D qui hérite de B et C mais qui ne redéfinit pas m.
Quel redéfinition de m va utiliser un appel à la méthode de m par une instance de D ? Le langage résoudra le pb (descente en profondeur d'abord pour Pyhton par exemple) , mais le developpeur devra l'anticiper. Pour certains langages ,il peut indiquer explicitement la méthode m de la classe mère qu'il souhaite utiliser. Mais dans la réalite la classe B a pu n'être créer qu'après la classe D. Donc il faut repasser sur tout le code utilisateur pour désambiguer, ce qui va à l'encontre des concepts d'evolutivité de l'appproche objet.
[^] # Re: Mes deux centimes ...
Posté par golum . En réponse au journal Repenser les langages et le développement logiciel. Évalué à 3.
C'est a dire ? L'héritage en diamant me semble poser un problème dans l'implémentation du langage, pas pour le programmeur, je me trompe ?
Je ne pense pas, le pb est bien pour le developpeur.
Soit une classe A qui définit une méthode m.
Soit B et C qui héritent de A et qui redéfinissent m.
Soit D qui hérite de B et C mais qui ne redéfinit pas m.
Quel redéfinition de m va utiliser un appel à la méthode de m par une instance de D ? Le langage résoudra le pb (descente en profondeur d'abord pour Pyhton par exemple) , mais le developpeur devra l'anticiper. Pour certains langages ,il peut indiquer explicitement la méthode m de la classe mère qu'il souhaite utiliser. Mais dans la réalite la classe B a pu n'être créer qu'après la classe D. Donc il faut repasser sur tout le code utilisateur pour désambiguer, ce qui va à l'encontre des concepts d'evolutivité de l'appproche objet.