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

Windows Forms Discussion :

[C#]Orienté Objet Heritage


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 29
    Points
    29
    Par défaut [C#]Orienté Objet Heritage
    Bonjour
    j'ai un ptit problème avec la programmation Orienté Objet.
    j'ai une interface itfGeneral qui contient la methode generer()

    j'ai une Classe clsVariable qui hérite de itfGeneral et qui implemente donc la methode generer()

    et j'ai egalement une troisieme classe clsEntier qui hérite de itfGeneral et de clsVariable.
    Et lorsque j'implemente la methode generer() de clsEntier ,le compilateur indique une erreur car les les 2 classe mères contiennent la méthode generer().

    Y'a t'il une solution?

    Merci pour votre aide!

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Si clsEntier hérite de clsVariable (qui elle même implémente itfGeneral), alors tu n'as pas besoin de spécifier que clsEntier doit implémenter itfGeneral.

    Par l'héritage, tu as accès, depuis clsEntier à la méthode generer() que tu auras implémenter dans clsVariable

  3. #3
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Le problème vient justement de ta confusion entre les termes techniques qui montrent une confusion au niveau de la compréhension, d'où ta question. Alors précisons les choses : ta classe "n'herite" pas de ton interface. Elle _supporte_ l'interface, nuance. Alors que la seconde classe _hérite_ de la première qui _supporte_ l'interface. Il n'est donc pas nécessaire de supporter à nouveau une méthode d'interface qui est héritée...
    Ajoutons que l'héritage existe aussi chez les interfaces, comme chez les classes, mais ces deux lignes de parentée sont parallèles et n'ont pas d'influences les unes sur les autres, sauf les incidences naturellement causées par le support volontaire dans les secondes des premières.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Merlin
    L ta classe "n'herite" pas de ton interface. Elle _supporte_ l'interface, nuance.
    Plus généralement, on dit qu'elle "implémente" l'interface

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    Effectivement, le concept d'interface était assez flou pour moi mais après avoir lu vos commentaires et quelques cours ça c'est éclaircit..

    En tout cas merci pour vos réponses et pour la rapidité à laquelle vous réponder

  6. #6
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Citation Envoyé par Morpheus
    Citation Envoyé par Merlin
    L ta classe "n'herite" pas de ton interface. Elle _supporte_ l'interface, nuance.
    Plus généralement, on dit qu'elle "implémente" l'interface
    c'est une façon de dire qui est, à mon sens, confusante et peu précise. Je préfère "supporter" que "implémenter" dans ce cas précis.
    De plus "implémenter" est un anglicisme venant de "implementation", qui se traduirait correctement en français par "mise en oeuvre".
    De fait on peut "mettre en oeuvre" (implémenter) n'importe quoi, pas seulement des interfaces. Alors que "supporter" une interface est plus restrictif et moins générique.
    Mais bon, on pourrait en parler des heures :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définitions de programmation impérative et orientée objet
    Par sjrd dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 10/09/2005, 19h32
  2. Stack OverFlow ou Violation d'adresse - Orienté Objet
    Par JakeGrafton dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2005, 16h34
  3. [DEBUTANT] Conseil sur la programmation orienté objet
    Par etiennegaloup dans le forum Langage
    Réponses: 7
    Dernier message: 27/05/2005, 12h59
  4. Réponses: 2
    Dernier message: 01/05/2005, 14h43
  5. [SGBDOO] Base de données orientée objet
    Par Jaona dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 14/04/2003, 11h07

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