heritage d'un constructeur

Le
JACFAFA
Bonjour,
J'ai une question de principe.
- J'ai dfini une classe 1 qui a un constructeur.
- Je dfini une classe 2 qui a aussi un constructeur et
qui hrite de la classe 1.
Ma question: lorsque j'instancie la classe 2, le
constructeur de la classe 1 est il aussi instanci?
(il semble que non)
Merci pour votre aide.
Franois
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Zazar
Le #12549811
Bonjour,

J'ai une question de principe.
- J'ai défini une classe 1 qui a un constructeur.
- Je défini une classe 2 qui a aussi un constructeur et
qui hérite de la classe 1.
Ma question: lorsque j'instancie la classe 2, le
constructeur de la classe 1 est il aussi instancié?



On instancie un objet, pas un constructeur et lors de l'instantiation, le
constructeur est appelé.
Si C2 hérite de C1, et que le constructeur de C2 ne fait pas d'appel
explicite à un constructeur de C1, alors le constructeur de C1 ne prenant
aucun paramètre (s'il n'existe pas il est créé automatiquement par le
compilateur) est appelé avant le constructeur de C2.

(il semble que non)



Qu'est ce qui vous fait penser ça ?

--
Zazar
Dominic Pelletier
Le #12549531
Bonjour JacFaFa et Zazar,

Pour faire appele au constructeur de ta classe parrent il faut que tu
mettre dans le constructeur de la classe enfant l'instruction pour appeler
le constructeur de la classe parrent

ex:

Class Class1
{

public Class1(string sParam)
{
}
{

Class Class2
{

public Class2()
{
string sParam;
base(sParam);
}
}


Dominic
"Zazar" news:%
Bonjour,

>J'ai une question de principe.
>- J'ai défini une classe 1 qui a un constructeur.
>- Je défini une classe 2 qui a aussi un constructeur et
>qui hérite de la classe 1.
>Ma question: lorsque j'instancie la classe 2, le
>constructeur de la classe 1 est il aussi instancié?

On instancie un objet, pas un constructeur et lors de l'instantiation, le
constructeur est appelé.
Si C2 hérite de C1, et que le constructeur de C2 ne fait pas d'appel
explicite à un constructeur de C1, alors le constructeur de C1 ne prenant
aucun paramètre (s'il n'existe pas il est créé automatiquement par le
compilateur) est appelé avant le constructeur de C2.

>(il semble que non)

Qu'est ce qui vous fait penser ça ?

--
Zazar




Zazar
Le #12549511
Bonjour,

Pour faire appele au constructeur de ta classe parrent il faut que tu
mettre dans le constructeur de la classe enfant l'instruction pour appeler
le constructeur de la classe parrent



Non, ce n'est pas la peine. Si aucun appel explicite est fait, alors le
constructeur sans paramètre est appelé.


ex:

Class Class1
{

public Class1(string sParam)
{
}
{

Class Class2
{

public Class2()
{
string sParam;
base(sParam);
}
}




Il y a peu de chances pour que ça compile tout ça et encore moins en VB.NET
:)

--
Zazar
Publicité
Poster une réponse
Anonyme