OVH Cloud OVH Cloud

Question de constructeur

4 réponses
Avatar
MiXAO
Pourquoi lorsque je veux étendre une certaine classe (en l'occurence
pour illustrer mon propos, il s'agit de DefaultTreeModel), je suis
*obligé* de définir un constructeur (ça compile pas sinon) ?
Et dans le constructeur, je suis *obligé* d'appeler l'ancêtre...

4 réponses

Avatar
no.bcausse.spam
MiXAO wrote:

Pourquoi lorsque je veux étendre une certaine classe (en l'occurence
pour illustrer mon propos, il s'agit de DefaultTreeModel), je suis
*obligé* de définir un constructeur (ça compile pas sinon) ?
Et dans le constructeur, je suis *obligé* d'appeler l'ancêtre...


car il n'y a pas de constructeur par defaut dans la classe mere
--
bruno Causse
http://perso.wanadoo.fr/othello

Avatar
MiXAO
Causse Bruno wrote:
MiXAO wrote:


Pourquoi lorsque je veux étendre une certaine classe (en l'occurence
pour illustrer mon propos, il s'agit de DefaultTreeModel), je suis
*obligé* de définir un constructeur (ça compile pas sinon) ?
Et dans le constructeur, je suis *obligé* d'appeler l'ancêtre...



car il n'y a pas de constructeur par defaut dans la classe mere


Et pourtant, je suis obligé au début de mon constructeur de faire
super(.....).
Pourquoi ?


Avatar
pasde.bcausse.spam
MiXAO wrote:

Et pourtant, je suis obligé au début de mon constructeur de faire
super(.....).
Pourquoi ?


n'ayant pas de constructeur par defaut (car il existe d'autres
constructeurs, le constructeur par defaut (cree automatiquement) est
suprimé) , la classe fille est oblige d'appeler un constructeur de la
mere voila l'utilité de super(...).

si le constructeur par defaut existe (par d'autre constructeur) super()
est alors utilisé implicitement dans les constructeurs de ta classe
fille

ai ete clair?
--
Bruno Causse
http://perso.wanadoo.fr/othello

Avatar
MiXAO
Bruno Causse wrote:
MiXAO wrote:


Et pourtant, je suis obligé au début de mon constructeur de faire
super(.....).
Pourquoi ?



n'ayant pas de constructeur par defaut (car il existe d'autres
constructeurs, le constructeur par defaut (cree automatiquement) est
suprimé) , la classe fille est oblige d'appeler un constructeur de la
mere voila l'utilité de super(...).

si le constructeur par defaut existe (par d'autre constructeur) super()
est alors utilisé implicitement dans les constructeurs de ta classe
fille

ai ete clair?


Oui, merci, je comprends la logique.

MiXAO