Héritage, généricité et instanciation

Carnelune Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Carnelune Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en train de réviser l'héritage en Objet, et je rencontre des problèmes pour comprendre toutes les relations entre classes concrètes, classes abstraites et interfaces.
Voici un exercice corrigé qui résume les différents cas, mais je ne parviens pas à tout comprendre.

http://img15.hostingpics.net/pics/260310jawa.jpg
_X : interfaces, $X : classes abstraites.

Quelqu'un pourrait m'expliquer la validation et l'invalidation des propositions ? Je sais pourquoi il y a des doubles implémentations, que les classes abstraites sont non instanciables et qu'on ne peut pas faire d'héritage multiple. Mais je reste bloquée...

Merci d'avance à ceux qui me répondront !

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Déjà très mauvaise idée d'utiliser le $ dans les noms de classes !
Pour le _ c'est un moins grave mais c'est à éviter aussi...

Dans tous les cas l'affectation est possible si le type concret est un descendant du type déclaré. Par exemple pour les deux premiers : E descend de _N (via _A), mais F n'en descend pas.La confiance n'exclut pas le contrôle
1
Carnelune Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Je pense (j'espère) que ce ne sont que des conventions utilisées ici par le prof pour nous permettre de reconnaître facilement les classes et instances.

Et pour le troisième, par exemple ? Aucun des deux ne descend de l'autre...

Merci de ta réponse rapide !
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"Je pense (j'espère) que ce ne sont que des conventions utilisées ici par le prof pour nous permettre de reconnaître facilement les classes et instances."
Du moment que tu ne les utilises pas en pratique...

"Et pour le troisième, par exemple ? Aucun des deux ne descend de l'autre..."
Bien sûr que si, tout descend de _M donc il n'y a aucun problème (H via $G, B, _Q)
0
Carnelune Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci encore, tout est beaucoup plus logique expliqué simplement comme ça !
0