Maison > Java > javaDidacticiel > Pourquoi ne pouvez-vous pas surcharger les méthodes basées uniquement sur les types de retour en Java ?

Pourquoi ne pouvez-vous pas surcharger les méthodes basées uniquement sur les types de retour en Java ?

DDD
Libérer: 2024-11-01 17:10:31
original
388 Les gens l'ont consulté

Why Can't You Overload Methods Based Solely on Return Types in Java?

Surcharge avec différents types de retour

En programmation, la surcharge permet à des fonctions portant le même nom d'exister au sein d'une classe ou d'un espace de noms mais avec des paramètres différents . Cependant, en Java, il n'est pas possible de surcharger les fonctions uniquement en fonction de leurs types de retour.

Pourquoi pas ?

Le compilateur Java s'appuie à la fois sur la signature de la fonction et sur le type de retour pour identifier de manière unique une fonction. Si le compilateur autorisait la surcharge par type de retour uniquement, cela créerait une ambiguïté. Prenons l'exemple suivant :

<code class="java">public int foo() {...}
public float foo() {..}

...
foo(); // which one to call?</code>
Copier après la connexion

Dans ce cas, le compilateur ne peut pas déterminer quelle méthode foo exécuter en fonction du seul type de retour. Cette ambiguïté entraînerait des erreurs de compilation.

L'avenir de Java

Il n'est actuellement pas prévu de modifier ce comportement dans les futures versions de Java. La spécification du langage Java indique explicitement que "deux méthodes ne peuvent pas avoir la même signature, même si elles ont des types de retour différents."

Considérations C

La surcharge par type de retour est également impossible en C . Semblable à Java, le compilateur C utilise tous les paramètres, y compris le type de retour, pour distinguer les fonctions portant le même nom. Cette approche garantit qu'un appel de fonction spécifique fait toujours référence à l'implémentation prévue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal