Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

heritage d'un constructeur

3 réponses
Avatar
JACFAFA
Bonjour,
J'ai une question de principe.
- J'ai d=E9fini une classe 1 qui a un constructeur.
- Je d=E9fini une classe 2 qui a aussi un constructeur et
qui h=E9rite de la classe 1.
Ma question: lorsque j'instancie la classe 2, le
constructeur de la classe 1 est il aussi instanci=E9?
(il semble que non)
Merci pour votre aide.
Fran=E7ois

3 réponses

Avatar
Zazar
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
Avatar
Dominic Pelletier
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" wrote in message
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




Avatar
Zazar
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