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

Fermé
Carnelune Messages postés 4 Date d'inscription lundi 26 août 2013 Statut Membre Dernière intervention 17 juin 2014 - 26 août 2013 à 20:34
Carnelune Messages postés 4 Date d'inscription lundi 26 août 2013 Statut Membre Dernière intervention 17 juin 2014 - 26 août 2013 à 21:20
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 26/08/2013 à 20:52
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 lundi 26 août 2013 Statut Membre Dernière intervention 17 juin 2014
26 août 2013 à 20:58
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 août 2013 à 21:09
"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 lundi 26 août 2013 Statut Membre Dernière intervention 17 juin 2014
26 août 2013 à 21:20
Merci encore, tout est beaucoup plus logique expliqué simplement comme ça !
0