Ajouter un commentaire

nasix
Re: Pourquoi ne peut-on pas hériter du constructeur ?

Bonjour,

Déjà si je comprends bien, tu veux dire, pourquoi on ne peut pas hériter le (et non pas du) constructeur ? Si c'est ça la question alors je te fais une analyse.

L'héritage est le fait qu'une classe reproduit le même comportement (pour les méthodes) et acquiert les même propriété (attributs) de sa classe mère.

Si on veut que les classes filles d'une classe A aient les même comportements f(), g() et h(). Il suffira alors de mettre ces méthodes visibles et non final et d'hériter de cette classe.

Pour les constructeurs, les choses sont différentes, le constructeur n'est pas une méthode, c'est la procédure de construction de l'objet, si tu en as plusieurs, alors tu as plusieurs façons de construire un objet. l'appel du constructeur est obligatoire avant l'utilisation de l'objet. D'où la première différence.

L'héritage est aussi une utilisation, une classe B héritant de A produit des objets de type B, et chaque objet de type B est un objet A plus les comportements (et propriétés) propre à B (non hérités de A). Ceci dit, pour construire un objet B, il faut avoir un objet A, auquel on rajoutera ce qui est spécifique à B, et donc la toute première étape pour la création d'un objet B est la création d'un objet A, et c'est exactement ce que fait le constructeur de B. On dit que les constructeurs de B appellent, avant tout, (implicitement ou explicitement) un constructeur de A. Donc la classe B appelle forcément un des constructeurs de A, on peut choisir lequel B appellera-t-elle ? mais pas si on appelle ou non le constructeur parent.

Une dernière chose, tu ne peux jamais appeler un constructeur via (this() ou super()) en dehors des constructeurs (en dehors de la phase de construction), parce que la construction de l'objet se fait une seul fois, et une fois tu as un objet, tu ne peux pas le recréer, tu peux créer un autre, mais pas le même. Tu peux donc appeler les fonction f, g et h tant de fois que tu en veux, mais tu ne peux pas appeler les constructeurs plus qu'une fois pour le même objet, voilà pourquoi les constructeurs sont différents. Et voilà pourquoi elle sont utilisés dans les classes filles et non pas hérités.

Il se peut bien que je m'exprime mal, s'il y a un point que j'ai mal expliqué, tu peux me faire signe.
Bonne chance.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 EEEE  TTTTTT  M   M  K  K  X   X 
E TT MM MM K K X X
EEE TT M M M KK X
E TT M M K K X X
EEEE TT M M K K X X