Salut
Est ce possible d'initialiser, dans le constructeur, dans la classe derivee l'instance existante de la classe de base ?
thx @+
Version imprimable
Salut
Est ce possible d'initialiser, dans le constructeur, dans la classe derivee l'instance existante de la classe de base ?
thx @+
est-ce que tu peux expliquer un peu plus?
sinon d'après ce que j'ai compris y'a aucune raison pour que tu ne puisses pas faire ça
Quand on derive une classe on a toujours la classe mais "vide" et j'aimerais savoir comment initialiser cette classe "vide" quand j'instancie la classe derivee ...
ps : Super l'avatar ! :yaisse2:
je vois
dans ta classe dérivée quand tu définis ton constructeur tu fais en sorte qu'il hérite par exemple de la classe de base
genre : ContructeurClasseDérivée() : base()
ps : oui c'est tout nouveau le MNP il faut être trop fort pour l'avoir :mouarf:
Slu
Est il possible de forcer le contructeur a utiliser lors de l'instanciation de la classe dans une classe derive ...
Par exemple
est donc ne pas permettre dans le contructeur de B d'utiliser le constructeur A()...Code:
1
2
3
4
5
6
7
8
9
10
11 Class a { public A () {} public A (int i) {} } class B: a { public B() : A(i) {} }
:roll:
Tu aurais pu le trouver très facilement si tu consultais la doc.Code:
1
2
3
4
5
6
7
8
9
10
11 Class 1 { public A () {} public A (int i) {} } class B: A { public B() : base(i) {} }
Mais c'est bien plus reposant pour les neurones de venir quémander sur un forum...
:D :D
Oui c est vrai, c est plus facile de quemender sur un forum ... mais en fait c 'est pas vraiment la reponse que je recherche ... :mouarf: :mouarf:
En fait , c'est empecher le "developpeur" d'utiliser un constructeur dans la classe derivee ... et autoriser un autre constructeur lors de l'instanciation de l'objet ... :yaisse2: :yaisse2:
Ca c'est une vraie question ;)
Non, c'est pas possible en l'état.
Une solution consiste à mettre le constructeur en private, comme ça pas d'héritage possible.
Et pour instancier tu fais une méthode static CreateNew() qui va appeler le constructeur.
Une autre solution, c'est l'utilisation du mot clef sealed.
Note : je déconseille d'interdire l'héritage. Généralement c'est utilisé pour masque le fait que la classe est mal implémentée.
Pour un puriste de l'objet (comme moi) : c'est anti-objet comme approche.
Après, c'est ton code :)