J'ai programmé une classe qui doit être mustinherit et qui dispose d'une
dizaine de constructeur
Quand j'hérite de cette objet dans une nouvelle classe, je n'hérite pas des
constructeurs et je dois les recoder à l'identique dans la classe qui
hérite. Est ce normal ? Y a t-il quelque chose concernant l'héritage que je
n'ai pas saisie.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Millox Frédéric
Salut Sylo,
Tu ne dois pas recoder à l'identique mais obligatoirement utilisé un des constructeurs que tu as défini dans ta classe abstraite.
ex : (pas très glorieux, j'en conviens)
Public MustInherit Class Animal Private _Attribut As String
Public Sub New(ByVal NomAnimal As String) _Attribut = NomAnimal End Sub
End Class
Public Class Leopard Inherits Animal
Public Sub New() MyBase.New("Leopard") ' Obligé d'utiliser un des New énoncé dans ta classe abstraite (ici il y a q'un seul). End Sub
A+.
End Class
-- fmillox
"Sylo" a écrit :
Bonjour,
J'ai programmé une classe qui doit être mustinherit et qui dispose d'une dizaine de constructeur
Quand j'hérite de cette objet dans une nouvelle classe, je n'hérite pas des constructeurs et je dois les recoder à l'identique dans la classe qui hérite. Est ce normal ? Y a t-il quelque chose concernant l'héritage que je n'ai pas saisie.
MErci Sylo
Salut Sylo,
Tu ne dois pas recoder à l'identique mais obligatoirement utilisé un des
constructeurs que tu as défini dans ta classe abstraite.
ex : (pas très glorieux, j'en conviens)
Public MustInherit Class Animal
Private _Attribut As String
Public Sub New(ByVal NomAnimal As String)
_Attribut = NomAnimal
End Sub
End Class
Public Class Leopard
Inherits Animal
Public Sub New()
MyBase.New("Leopard") ' Obligé d'utiliser un des New énoncé dans ta
classe abstraite (ici il y a q'un seul).
End Sub
A+.
End Class
--
fmillox
"Sylo" a écrit :
Bonjour,
J'ai programmé une classe qui doit être mustinherit et qui dispose d'une
dizaine de constructeur
Quand j'hérite de cette objet dans une nouvelle classe, je n'hérite pas des
constructeurs et je dois les recoder à l'identique dans la classe qui
hérite. Est ce normal ? Y a t-il quelque chose concernant l'héritage que je
n'ai pas saisie.
Tu ne dois pas recoder à l'identique mais obligatoirement utilisé un des constructeurs que tu as défini dans ta classe abstraite.
ex : (pas très glorieux, j'en conviens)
Public MustInherit Class Animal Private _Attribut As String
Public Sub New(ByVal NomAnimal As String) _Attribut = NomAnimal End Sub
End Class
Public Class Leopard Inherits Animal
Public Sub New() MyBase.New("Leopard") ' Obligé d'utiliser un des New énoncé dans ta classe abstraite (ici il y a q'un seul). End Sub
A+.
End Class
-- fmillox
"Sylo" a écrit :
Bonjour,
J'ai programmé une classe qui doit être mustinherit et qui dispose d'une dizaine de constructeur
Quand j'hérite de cette objet dans une nouvelle classe, je n'hérite pas des constructeurs et je dois les recoder à l'identique dans la classe qui hérite. Est ce normal ? Y a t-il quelque chose concernant l'héritage que je n'ai pas saisie.
MErci Sylo
Kelpan
Bonjour,
On ne peut pas hériter d'un constructeur.
Il te faut obligatoirement un constructeur pour instancier les variables de ta classe. (Si tu ne mets pas de constructeur, il en sera créer un par défaut implicitement pour pouvoir appeler MyBase.New et instancier les variables de ta classe.) Et c'est ce même constructeur qui va appeler le constructeur de ta classe de base.
Par contre, inutile de recoder à l'identique de ta classe de base, il suffit d'appeler MyBase.New(avec le ou les paramètres) pour chaque NEW.
J'ai eu le même problème, en voulant créer un composant héritant de Menuitem qui comporte plusieurs constructeurs.
Bonjour,
On ne peut pas hériter d'un constructeur.
Il te faut obligatoirement un constructeur pour instancier les variables de
ta classe.
(Si tu ne mets pas de constructeur, il en sera créer un par défaut
implicitement pour pouvoir appeler MyBase.New et instancier les variables de
ta classe.)
Et c'est ce même constructeur qui va appeler le constructeur de ta classe de
base.
Par contre, inutile de recoder à l'identique de ta classe de base, il suffit
d'appeler MyBase.New(avec le ou les paramètres) pour chaque NEW.
J'ai eu le même problème, en voulant créer un composant héritant de Menuitem
qui comporte plusieurs constructeurs.
Il te faut obligatoirement un constructeur pour instancier les variables de ta classe. (Si tu ne mets pas de constructeur, il en sera créer un par défaut implicitement pour pouvoir appeler MyBase.New et instancier les variables de ta classe.) Et c'est ce même constructeur qui va appeler le constructeur de ta classe de base.
Par contre, inutile de recoder à l'identique de ta classe de base, il suffit d'appeler MyBase.New(avec le ou les paramètres) pour chaque NEW.
J'ai eu le même problème, en voulant créer un composant héritant de Menuitem qui comporte plusieurs constructeurs.