Instancier un objet d'une classe fille

suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009 - 30 mai 2009 à 16:40
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 31 mai 2009 à 00:12
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

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 mai 2009 à 17:05
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-
0
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
30 mai 2009 à 17:12
Merci!!!

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

Merci pour tes éclaircissements
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
30 mai 2009 à 17:25
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-
0
suethi75 Messages postés 101 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 31 août 2009
30 mai 2009 à 17:57
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
31 mai 2009 à 00:12
Le code que tu donnes est faux.
Regardes l'exemple que je t'ai donné...

<hr />
-Blog-
-Site Perso-
0
Rejoignez-nous