Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Classes & héritage : ai-je bien tout compris ?

2 réponses
Avatar
jacques_f
Venant de VB6, j'intègre peu à peu les nouveautés de VB.NET.
Au sujet des classes, j'ai vu que l'héritage ne fonctionne sur un
niveau, càd : Classe2 hérite de Classe1. On ne peut donc pas créer de
Classe3 qui hériterait de Classe2 (si j'ai bien compris). Je cherche à
contourner cette limitation. Or j'ai lu que les niveaux d'héritage de
l'INTERFACE seulement d'une classe, sont illimités. Donc, toujours
suivant mon modèle, je crée les interfaces de Classe1, Classe2 et
Classe3 avec Classe2 qui hérite de Classe1 et Classe3 qui hérite de
Classe2. En fait, j'aurai plusieurs interfaces de classes : Classe4,
Classe5, Classe6 ...etc qui hériteront toutes de Classe3. Donc, pour
éviter de taper le même code d'implémentation pour chacune de ces
classes, dans leurs méthodes respectives, il suffit de faire appel à des
fonctions ou routines situées dans un module, ce qui permettrait de
contourner cette limitation de l'héritage. Est-ce une bonne façon de
faire ? Existe-t-il d'autres moyens ? Y-a-t'il quelquechose qui m'aurait
échappé ?

Merci de vos éclaircissements.



--
JacquesF

"L'orgueil du savoir est pire que l'ignorance". Shafique Keshavjee
-----------
Enlever safe. et .safe avant et après mon adresse email pour me contacter.

2 réponses

Avatar
David Rousset [MS]
Bonjour,

Il n'y a pas de limitation dans la chaîne d'héritage des classes.

Vous ne pouvez pas dériver une classe si celle-ci est marquée
"NotInheritable" (vérouillée pour l'héritage donc). Sinon, rien ne vous
empêches de créer une Classe3 dérivant à nouveau d'une Classe2 issue d'une
Classe1.

Pourquoi pensiez-vous que c'était limité?

Par contre, si vous désirez développer correctement en objet, il ne faut
surtout pas mettre du code dans un module.

Bye,
--
David Rousset
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.

"jacques_f" a écrit dans le message de
news: 425d2088$0$6817$
Venant de VB6, j'intègre peu à peu les nouveautés de VB.NET.
Au sujet des classes, j'ai vu que l'héritage ne fonctionne sur un niveau,
càd : Classe2 hérite de Classe1. On ne peut donc pas créer de Classe3 qui
hériterait de Classe2 (si j'ai bien compris). Je cherche à contourner
cette limitation. Or j'ai lu que les niveaux d'héritage de l'INTERFACE
seulement d'une classe, sont illimités. Donc, toujours suivant mon modèle,
je crée les interfaces de Classe1, Classe2 et Classe3 avec Classe2 qui
hérite de Classe1 et Classe3 qui hérite de Classe2. En fait, j'aurai
plusieurs interfaces de classes : Classe4, Classe5, Classe6 ...etc qui
hériteront toutes de Classe3. Donc, pour éviter de taper le même code
d'implémentation pour chacune de ces classes, dans leurs méthodes
respectives, il suffit de faire appel à des fonctions ou routines situées
dans un module, ce qui permettrait de contourner cette limitation de
l'héritage. Est-ce une bonne façon de faire ? Existe-t-il d'autres moyens
? Y-a-t'il quelquechose qui m'aurait échappé ?

Merci de vos éclaircissements.



--
JacquesF

"L'orgueil du savoir est pire que l'ignorance". Shafique Keshavjee
-----------
Enlever safe. et .safe avant et après mon adresse email pour me contacter.


Avatar
jacques_f
D'accord. Merci pour ces précisions. La limitation à un niveau
d'héritage, je l'ai lue dans un tutorial VB.NET trouvé sur Internet.
Merci de ton aide.




--
JacquesF

"L'orgueil du savoir est pire que l'ignorance". Shafique Keshavjee
-----------
Enlever safe. et .safe avant et après mon adresse email pour me contacter.