Skip to main content

Qu'est-ce que la surcharge de méthode?

La surcharge de méthode est une fonctionnalité dans la plupart des langages de programmation orientés objet dans lesquels deux méthodes ou plus partagent le même nom mais ont des paramètres différents.Plus précisément, le nombre, le type de données et / ou l'ordre des paramètres sont différents.Lorsque le code est compilé, la méthode correcte sera automatiquement sélectionnée en fonction de la façon dont elle est appelée.Les méthodes sont également connues sous le nom de fonctions dans certains langages de programmation, de sorte que la surcharge des méthodes est parfois appelée surcharge de fonction.

Un exemple simple de surcharge de méthode serait une méthode qui calcule la zone d'un carré.Il pourrait être défini comme Getarea (carré S).Cette méthode pourrait être surchargée pour calculer en outre la zone du cercle en ajoutant la méthode getarea (cercle C).

La principale exigence de surcharge de méthode est que les méthodes partagent le même nom.Leurs signatures de méthode mdash;Le nom de la méthode, le nombre de paramètres et les types de données de paramètres mdash;devrait autrement être unique.De cette façon, le compilateur peut déterminer la méthode à exécuter.

Les constructeurs, les méthodes utilisées pour instancier des objets, sont souvent surchargées.Ceci est fait pour initialiser un objet avec des valeurs non défaut.Par exemple, un objet employé avec deux champs (nom et date de naissance, ou DOB) peut avoir les constructeurs surchargés suivants: employé (), employé (nom) et employé (nom, dob).Le premier constructeur crée un objet d'employé avec des champs de nom de blanc et de DOB.Le second définit le champ de nom, mais laisse le champ DOB vide, et le troisième définit à la fois les champs de nom et de DOB.

La surcharge de méthode est le plus souvent effectuée pour faire apparaître logiquement plus d'une méthode comme une seule méthode.Dans l'exemple Getarea (), bien qu'il existe physiquement deux méthodes, l'appelant est présenté avec une seule méthode Getarea () logique.De cette façon, getarea () peut être élargi pour travailler sur d'autres formes mdash;triangles, trapézoïdes, etc. mdash;tout en se présentant logiquement comme une seule méthode.

Les méthodes sont également surchargées pour préserver la compatibilité vers l'arrière.Une méthode qui fait un calcul complexe pourrait recevoir une nouvelle exigence pour effectuer éventuellement le même calcul avec un léger changement.Un nouveau paramètre est ajouté à la méthode qui déterminera comment effectuer le calcul mdash;L'ancienne ou la nouvelle manière. Pour éviter d'avoir à trouver tous les cas dans lesquels la méthode est appelée et ajouter le nouveau paramètre, la méthode peut être surchargée.La nouvelle méthode aura l'ancienne signature et sera appelée par le code existant.Il ne contiendra aucune logique lui-même et appellera simplement la méthode modifiée et passera par défaut «ancienne» pour le nouveau paramètre.Le nouveau code appellera la méthode modifiée et passera le nouveau paramètre avec la valeur appropriée, l'ancienne ou la nouvelle façon.

La surcharge de méthode est un type de polymorphisme, dans lequel la même méthode logique peut être, en pratique, utilisée de plusieurs manières.La surcharge de méthode n'est pas la même chose que la mise en place de la méthode.La méthode dominante est l'endroit où la définition d'une méthode dans une classe parent est modifiée par une classe enfant.Dans ce cas, les deux méthodes auront la même signature.