Ca fait longtemps que j'ai plus fait de POO, mais il me semble que le polymorphisme permet de le faire .... ou alors il ne prend en compte que les paramètres de la fonction ? (faudra que je m'y remette un de ces 4).
Ouh la y a un mélange de plein de trucs là.
Tu peux carrément renvoyer une fois Int et une fois String, oui, mais ton type de retour devra correspondre aux deux cas et donc être leur ancêtre commun : Object ; pas très utile comme information de type.
Par ailleurs par polymorphisme tu veux dire polymorphisme ad hoc, plus communément appelé surcharge dans le monde Java ? Faire deux fonctions "semblables" (mettons pour le moment, le même nom et les mêmes paramètres ; on verra plus tard que c'est faux mais c'est pour la démonstration) mais qui diffèrent par leur type de retour ? Du coup ça n'a plus rien à voir, c'est plus "la même fonction" dont on chercherait à spécifier un type de retour.
Et c'était "faux" comme cas car de toute façon en Java la signature d'une fonction n'inclut pas le type de retour. Tu ne peux pas avoir deux fonctions à la signature identique (type des paramètres, nom... je ne sais plus dans quelle mesure les exceptions checked comptent, je crois que non, comme le type de retour) mais qui ne diffèrent que par le type de retour.
[^] # Re: Définition implicites ?
Posté par Sufflope (site web personnel) . En réponse au journal Non, l'inférence de types n'est pas du typage faible. Oui, elle rend les programmes plus lisibles. Évalué à 5.
Ouh la y a un mélange de plein de trucs là.
Tu peux carrément renvoyer une fois Int et une fois String, oui, mais ton type de retour devra correspondre aux deux cas et donc être leur ancêtre commun : Object ; pas très utile comme information de type.
Par ailleurs par polymorphisme tu veux dire polymorphisme ad hoc, plus communément appelé surcharge dans le monde Java ? Faire deux fonctions "semblables" (mettons pour le moment, le même nom et les mêmes paramètres ; on verra plus tard que c'est faux mais c'est pour la démonstration) mais qui diffèrent par leur type de retour ? Du coup ça n'a plus rien à voir, c'est plus "la même fonction" dont on chercherait à spécifier un type de retour.
Et c'était "faux" comme cas car de toute façon en Java la signature d'une fonction n'inclut pas le type de retour. Tu ne peux pas avoir deux fonctions à la signature identique (type des paramètres, nom... je ne sais plus dans quelle mesure les exceptions checked comptent, je crois que non, comme le type de retour) mais qui ne diffèrent que par le type de retour.