IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Héritage multiple en VB.Net


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2010
    Messages : 93
    Par défaut Héritage multiple en VB.Net
    Salut tous,

    J'ai un problème, je cherche à effectuer un héritage multiple. Par exemple une classe C doit hériter des deux classes A et B. Apparemment on ne peut pas le faire mais il y aura forcément une solution de secours

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par tonnebrre Voir le message
    Apparemment on ne peut pas le faire ...
    On ne peut pas le faire, tout court ^^

    Soit tu revois la conception (peut être que de la composition serait plus approprié que de l'héritage dans le cas en question), afin de te passer de ce besoin d'héritage multiple, soit tu passes par des interfaces (une classe pouvant implémenter plusieurs interfaces).

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    L'héritage multiple cause généralement plus de problèmes qu'il n'en résout, c'est probablement pour ça que les concepteurs de .NET ont décidé de ne pas le supporter... D'ailleurs il me semble que la plupart des langages objets modernes ne le supportent pas non plus

    Tu ne peux donc hériter que d'une seule classe, en revanche tu peux implémenter d'autant d'interfaces que tu veux (et éventuellement déléguer l'implémentation de ces interfaces à des classes existantes, c'est la composition)

    Si tu nous décrivais un peu ce que veux faire, on pourrait sans doute te suggérer une solution plus appropriée

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour,
    si tu as besoin d'heriter de 2 classes A et B c'est que
    1 cas:
    - les classes ancetres de A et B(dans le cas ou tu as prevu 2 classes ancetres anstraites "MustInherit")devraient etre une seule.
    -si tel est le cas fusionne les 2 ancetres en un seul(fais remonter l'heritage d'abord,ensuite descend)
    2 cas :
    - tu n' as pas prevu une classe ancetre commune "MustInherit" de A et B alors il faut en creer une avec les membres,proprietes et methodes overridables (à implementer) par fusion de celles des classes A et B.

    Dans tous les cas le code deja ecrit pour A et B est gagnee....si tel est l'objectif ,je presume de ta question ,car l'heritage n'est interessant que s'il permet un gain de code dans l'ecriture de code....
    Son inconvenient,c'est un echafaudage fragile et irreversible,dont il ne faut pas abuser....
    bon code....

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2010
    Messages : 93
    Par défaut
    merci a tous et a toi MABROUKI
    mais je ne vois pas pourquoi tu dis que les classes A et B doivent avoir une ou plusieur classe ancetre que ceux soi "mustinherit" ou non

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut heritage avec un seul ancetre
    bonjour tonnebre
    puisqu'on ne peut heriter que d'une seule classe (c.à.d qu'une classe derivee ne peut avoir qu'un seule classe ancetre) c'est que il y aura forcement un seul ancetre commun.
    l'ancetre commun qui satisfait à cette condition est celui qu'on obtient :
    -par la creation d'un ancetre commun X qui fusionne les props,methodes etc ...de A & B et on heriter C de cet ancetre X.
    bon code..........

Discussions similaires

  1. [VB.Net] héritage multiple
    Par Cirdan Telemnar dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/06/2006, 16h37
  2. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. utilisez vous l'héritage multiple ?
    Par vodosiossbaas dans le forum C++
    Réponses: 8
    Dernier message: 13/06/2005, 20h25
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo