
Envoyé par
TropMDR
Généralement l'overloading se fait sur le type des *arguments*, et non sur celui du type de retour.
Le byte code java (mais pas le langage java) autorise bien l'overloading sur le type de retour. En revanche, je ne connais aucun langage "pour humain" qui l'autorise. En effet, que faire dans la situation suivante :
J'ai une classe Foo avec une méthode foo() qui retourne soit int soit float, et une classe Bar avec une méthode bar(int i) et bar(float x). Maintenant j'ai f de type Foo et b de type Bar. Que signifie le code b.bar(f.foo()) ?
Bref, si ce n'est pas utilisé, c'est qu'il y a une bonne raison : c'est que ce n'est pas utilisable.
Partager