Si je crée cette méthode
public void foo()
Et puis je crée une version surchargée comme celle-ci
public void foo( string bar )
Disons-nous que la seconde fonction surcharge la première, ou les deux méthodes sont-elles également "surchargées"?
Cela impliquerait (je pense), qu'il existe une fonction de type de base, qui est surchargée, par une autre fonction (un peu comme l'héritage, mais pas vraiment).
En supposant qu'une méthode peut "en surcharger une autre", cela impliquerait également des termes comme "surcharge" et "surcharge", si c'est un mot. Mais cela ne semble pas du tout approprié, d'autant plus que vous pouvez avoir plusieurs surcharges.
Je suis arrivé à cette question quand je voulais écrire le processus de création d'une méthode surchargée et je voulais la façon la plus correcte de l'écrire.
Exemples:
- Je surcharge
foo
- Je SURCHARGE
foo
avecfoo( string bar )
- Je crée une méthode surchargée
- Je fais foo surchargé
Alors oui, ça m'a fait réfléchir, je ne sais pas quoi en penser. Il existe des centaines, voire des milliers, de descriptions de surcharge de fonctions en ligne, mais à première vue, je n'ai trouvé aucune solution à ce problème.
la source
Réponses:
Lorsque l'on parle de surcharges, le nom de la fonction est surchargé, pas la fonction elle-même. Les fonctions surchargeant le nom sont des "surcharges" et surchargent le nom, mais pas les unes les autres. Dans votre exemple,
"public void foo()"
et les"public void foo( string bar )"
deux surchargent le nom "foo". Par conséquent, vous ne pouvez pas parler de surcharge et de surcharge d'une des fonctions, car elles n'ont pas de relation directe.Dans vos exemples, vous pouvez dire que vous surchargez "foo" (le nom) avec "foo (string bar)" (la fonction), mais vous ne pouvez pas dire que vous créez une méthode surchargée, car les méthodes ne sont jamais surchargées. Vous pouvez dire que vous créez une méthode de surcharge. Formuler "faire foo surchargé" est juste une pire façon de dire "foo surcharge".
la source
Je dirais simplement que
foo
c'est surchargé. Il n'y a certainement pas de relation maître / esclave ou parent / enfant qui se passe ici.la source
Je pense qu'une bonne façon de l'exprimer est de se concentrer sur le résultat final, pas sur les changements apportés à la classe au fil du temps. Ainsi, au lieu de dire "J'ai surchargé 'foo' avec 'foo (autres paramètres)'", "vous dites" foo est une fonction surchargée, avec 'foo ()' et 'foo (autres paramètres). ""
la source