Héritage exclusif
Définition : Héritage exclusif
Un héritage est exclusif si les objets d'une classe fille ne peuvent appartenir aussi à une autre classe fille. On peut le noter avec la contrainte {X}
sur le diagramme UML ({XT}
si la classe mère est abstraite).
Définition : Héritage non exclusif
L'héritage non exclusif est une forme d'héritage qui exprime qu'un objet peut appartenir à deux classes filles en même temps.
Syntaxe : Notation des héritages exclusifs
Normalement la notation UML par défaut désigne un héritage non exclusif.
Mais l'héritage exclusif étant plus commun, on conviendra plutôt qu'un schéma UML qui ne comporte que des héritages non contraints exprime par défaut des héritages exclusifs.
Une note peut être ajoutée précisant que tous les héritages sont exclusifs pour lever toute ambiguïté.
En revanche un schéma qui comporte explicitement des contraintes sur certains héritages est pas sur d'autres permet effectivement d'exprimer de l'héritage non exclusif.
Une dernière possibilité, moins standard, est de marquer d'une contrainte de type {NON X} un héritage non exclusif.
Méthode : On évitera l'héritage non exclusif pour la conception de BD
Bien que cette forme d'héritage soit autorisée en modélisation conceptuelle de bases de données et en UML, on évitera de la mobiliser, sauf en cas d'apport vraiment important d'expressivité, car elle a tendance à complexifier la modalisation, que ce soit au niveau de son interprétation humaine ou de son implémentation en machine.
Il est toujours possible d'exprimer différemment un héritage non exclusif :
en multipliant les classes filles pour les singulariser,
et/ou en utilisant la composition pour factoriser les parties communes.