Acces au constructeur hérité. [Résolu]

Signaler
Messages postés
107
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
20 février 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Salut à tous,

Je voudrais savoir si c'est possible d'appeler un constructeur d'une classe, qui a été héritée, dans le constructeur de la classe héritée.

Un exemple: la classe A possède un constructeur A();
Et la classe B qui hérite de A, je voudrais que dans le constructeur de la classe B appelé le constructeur de la classe A.

Merci d'avance.

Manu

7 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Je repondais à scaryman nos messages ce sont croisés.  Ce n'est pas possible ce que tu veux faire, tu peux appeler une fonction de la classe de base mais pas le constructeur.
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

Je crois que c'est public B() : base.A() ...
++ !
Localstone
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
non ;)

public
B() :

base
()
{
}
tout simplement

Mx
MVP C# 
Messages postés
492
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
16 mai 2007
11
Salut MM
Donc si je fais ça:
public B() : base()
{
Console.Out.WriteLine("hello"); //un exemple
}
Qu'est-ce qui se passe ?
Le constructeur de la superclasse sera exécuté avant ou après mes méthodes du constructeur ?

Merci
Messages postés
107
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
20 février 2008

En fait je cherche plutot à faire du genre :

public void B(int variable): base(int cpt)
{
   // traitement effecter avec les paramètres rentrés dans B
   // Appel du constructeur de A avec le paramètre variable
   base(variable);
}

Manu
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Avant. La classe de base est toujours construite avant la classe dérivée.. l'appel explicite du constructeur de la classe de base clarifie la syntaxe mais si on n'indique pas "base( )" l'appel est quand même réalisé implicitement, l appel du constructeur de la classe de base est utile quand il faut passer des paramêtres.

public class A
{
   public A( ) { }
   public A( int x ) { /* .. */ }
}

public class B : A
{
   public B( intx, int y ) : base( x ) { /* .. */ }
}
Messages postés
107
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
20 février 2008

Je suis d'accord mais je voudrais appeler le constructeur de la classe A dans le constructeur de la classe B et pas forcement à la création de la classe B.

Manu