probleme d'héritage - Java - Programmation
Marsh Posté le 08-03-2005 à 18:26:55
garde la signature public A meth(), sachant tu peux renvoyer un B sachant que c'est un A
Marsh Posté le 08-03-2005 à 18:29:34
EpoK a écrit : garde la signature public A meth(), sachant tu peux renvoyer un B sachant que c'est un A |
ah oui bien vu le polymorphisme c'est ca ?
Marsh Posté le 08-03-2005 à 18:42:17
euh j'ai un doute là...
oui je peux renvoyer un B car c'est un A mais je ne peux pas le ranger dans un B étant donné que c'est un A...donc ca coince...
Marsh Posté le 08-03-2005 à 18:46:41
Euh pkoi tu pourrais pas?
Un A, c'est un B light...
Au pire, tu castes: tonNouveauB = (B)tonAncienB.meth()
Marsh Posté le 08-03-2005 à 22:39:55
en java1.5, tu peux garder la signature avec le type de retour B, c'est d'ailleur plus propre si c'est effectivement toujours un B que tu renvois : ca évite de devoir caster dans les cas où tu te sers directement d'un objet de type B plutot qu'un objet de type A.
en java < 1.5, ce n'était pas possible : pour surcharger une méthode, tu étais obligé de garder exactement la même signature.
Cette fonctionnalité ajouté dans le java1.5 s'apelle le type de retour covariant.
Marsh Posté le 09-03-2005 à 19:42:32
benou a écrit : en java1.5, tu peux garder la signature avec le type de retour B, c'est d'ailleur plus propre si c'est effectivement toujours un B que tu renvois : ca évite de devoir caster dans les cas où tu te sers directement d'un objet de type B plutot qu'un objet de type A. |
je savais pas
Marsh Posté le 08-03-2005 à 17:28:34
c'est encore moi
j'aimerais une petite précision sur l'héritage...
soit 2 classes :
voila le probleme c'est que je ne sais pas comment faire pour implementer la méthode meth dans la classe B.
le type de retour fait il parti de la signature ?
si je le fais passer en redéfinition il me dit que ce n'est pas le même type de retour...
merci pour votre aide
Message édité par tomtom41 le 08-03-2005 à 17:28:57