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

ASP.NET Discussion :

[2.0][C#] Héritage - Copie du père dans le fils


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut [2.0][C#] Héritage - Copie du père dans le fils
    Bonjour,

    Je rencontre un petit problème avec l'utilisation de l'héritage en C# et les cours sur l'héritage sont très loin, je ne trouve pas mon bonheur sur le net et je trouve mon problème illogique.


    J'ai une classe classeA, et une classe classeB.
    classeB hérite de classeA (donc classeB contient autant ou plus d'infos que classeA).

    Je souhaite pouvoir copier classeA dans classeB (c'est pour la construction des éléments, le père fait la base et chaque type de fils rempli ses données propres).

    Mais je ne comprends pas comment faire ...
    Je n'ai pas le droit à B = (classeB) A puisque A n'est pas du tout classeB.

    Mais je ne peux pas faire non plus :
    (classeA) B = A

    Et je ne comprends pas trop pourquoi ...

    Quelqu'un aurait une petite idée pour m'avancer un peu ?
    Je pense que ca doit etre possible quand meme ...

    Désolé si vous n'avez rien compris a mon post.
    Merci beaucoup
    Worldofdada

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    Bonjour,
    Je pense qu'en surchargeant le constructeur du fils (avec comme argument le pere) tu devrais y arriver car le fils à toutes les propriétés du pere.
    Par exemple
    si tu as une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    classe point (float x float y)
    tu as les pripriétées :
    - float abscisse
    - float ordonnée
    et une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cercle : point 
    qui a en plus la propriété 
    -float rayon
    tu peux avoir un constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cercle(Point p)
    {
    this.abscisse = p.abscisse;
    this.ordonnée = p.ordonnée;
    this.rayon = 0;
    }
    et la tu recupere bien les données du père.
    C'est bien évidement un exemple simple. Mais je pense qu'il illustre assez bien ce que tu cherches
    Si ca ne répond pas à ta question n'hésites pas

    Bonne journée
    Notalp

  3. #3
    Membre éclairé Avatar de DonkeyMaster
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 95
    Par défaut
    Copier classeA dans classeB. Tu veux dire, créer une nouvelle instance de classeB, qui contient les données d'une autre instance de classeA?
    Ou tu veux seulement que quand tu crées une nouvelle instance de classe B, les données de classeA soient initialisées en même temps?

    Dans le premier cas, j'aurais suggéré de créer une méthode, appelée par exemple CopierDans(classeA pObj), qui copie ses données dans une autre instance, comme montré dans le post précédent.

    Dans le deuxième cas, tu es en train de chercher autour des constructeurs. Le constructeur des classes-mères est automatiquement appelé dans les cas simples des constructeurs par défaut, mais le plus souvent on a besoin de le faire explicitement:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public classeA (Object donn1, Object donn2) {
        this.donn1=donn1;
        this.donn2=donn2
    }
    public classeB (Object data1, Object data2, Object data3, Object data4) : base (data1, data2) {
        this.data3=data3;
        this.data4=data4;
    }
    N'hésite pas à préciser ta question si je n'y ai pas tout à fait répondu.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut
    Ok donc si je comprends bien, il faut que je crée une méthode de "copie".

    Je m'étais gardé cette solution de coté car j'ai beaucoup d'attributs dans ma classe principale, et je pensais qu'il existait un mécanisme pour "caster" un objet de type pere, dans un objet de type "fils".

    Merci pour vos réponses, je suis prenneur si y'a d'autres solutions

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    En revanche, pour ne pas garder des questions idéfiniment ouvertes, si tu considère avoir eu réponse a ta question, merci d'utiliser pour nous le signaler
    Merci et bonne journee

    Notalp

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 132
    Par défaut
    Oui, comme d'habitude

    C'est juste que j'attendais au cas où quelqu'un ai une solution miracle ... on peut espérer en période de fêtes

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/12/2005, 21h10
  2. Copie d'écran dans un fichier
    Par angsthase dans le forum Autres Logiciels
    Réponses: 12
    Dernier message: 17/08/2005, 00h45
  3. Problème de copie de string dans string
    Par kazarn dans le forum SL & STL
    Réponses: 17
    Dernier message: 15/03/2005, 18h35
  4. [easystruts] probleme de copie des *.tld dans web-inf
    Par champion dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/08/2004, 11h46
  5. Copie de donnees dans SQL server 2000
    Par papayou42 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/12/2003, 10h58

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