Instancier un objet d'une classe fille

Signaler
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour,

Je voudrais instancier un objet d'une classe fille. Oui, comme vous avez pu le comprendre j'ai un héritage.

J'utilise le constructeur de la classe fille mais je voudrais mettre des paramètres dans mon constructeur. Cependant je ne sais pas comment faire comme le constructeur possède les champs de la classe mère.

Constructeur de la classe fille:

public Public(int leNombreDePlace)
                    : base(ceNomConcert, dureeConcert, genreConcert)
        {
            this.nombrePlaceMini = leNombreDePlace;
        }

instanciation de l'objet:

if (checkBoxPublic.Checked == true)
           {
               Public concertPublic = new Public();

Que dois je mettre comme paramètre?

Merci pour votre aide

5 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Une classe fille est obligée d'appeler un constructeur de la classe mère.
Si ta classe mère n'a qu'un constructeur, c'est celui-ci qui devra être appelé.

En l'occurence, le constucteur à trois paramètre. Si tu ne veux pas passer des valerus statiquement comme

public Public(leNombreDePlace) : base("concert", 90, "rock")
        {
            this.nombrePlaceMini = leNombreDePlace;
        }

alors il faut passer les paramètres par le constructeur fils:

public Public(leNombreDePlace, ceNomConcert, dureeConcert, genreConcert) : base(ceNomConcert, dureeConcert, genreConcert)
        {
            this.nombrePlaceMini = leNombreDePlace;
        }

<hr />
-Blog-
-Site Perso-
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

Merci!!!

Mais je ne vois pas la différence entre les 2 possibilitées?

Merci pour tes éclaircissements
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Ben la première tu donnes le nombre de place uniquement.
Les valeurs "concert", 90, et "rock" sont fixées quoi qu'il en soit:

Public public = new Public(20); // 20 places

Dans l'autre cas, tu peux spécifier toutes ces valeurs:

Public public = new Public (20, "monConcert", 120, "jazz");
// 20 places, 120 min, type jazz

<hr />
-Blog-
-Site Perso-
Messages postés
101
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
31 août 2009

oui mais il n'y a plus la notion d'héritage.

J'ai un soucis

// constructeur de la classe fille
public Public(int leNombreDePlace): base(nomConcert, dureeConcert, genreConcert)
        {
            this.nombrePlaceMini = leNombreDePlace;
        }

le probléme est:

Erreur    1    Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'concert.concert1.nomConcert'   

// extrait de la classe mère
        protected string nomConcert;
        protected string dureeConcert;
        protected string genreConcert;

        #endregion;

        #region DECLARATION DES CONSTRUCTEURS
        public concert1()
        {
        }

        public concert1(string unNomConcert, string uneDureeConcert, string unGenreConcert)
        {
            this.nomConcert = unNomConcert;
            this.dureeConcert = uneDureeConcert;
            this.genreConcert = unGenreConcert;

        }

Merci pour ton aide
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Le code que tu donnes est faux.
Regardes l'exemple que je t'ai donné...

<hr />
-Blog-
-Site Perso-