Différence entre le remplacement et la surcharge

Différence entre le remplacement et la surcharge
Différence entre le remplacement et la surcharge

Vidéo: Différence entre le remplacement et la surcharge

Vidéo: Différence entre le remplacement et la surcharge
Vidéo: 2 Common French Pronouns: Y vs EN 2024, Juillet
Anonim

Remplacer ou surcharger

La méthode Overriding et la méthode Overloading sont deux concepts/techniques/fonctionnalités présents dans certains langages de programmation. Les deux concepts permettent au programmeur de fournir différentes implémentations pour les méthodes portant le même nom. Le remplacement de méthode permet au programmeur de fournir une implémentation alternative dans une sous-classe à une méthode déjà définie dans sa super classe. La surcharge de méthode permet au programmeur de fournir différentes implémentations à plusieurs méthodes portant le même nom (au sein de la même classe).

Qu'est-ce que la priorité ?

Comme mentionné ci-dessus, une classe peut étendre une super classe ou une classe parente, dans les langages de programmation orientés objet. Une classe enfant peut avoir ses propres méthodes ou peut éventuellement avoir ses propres implémentations de méthodes déjà définies dans sa classe parente (ou l'une de ses grandes classes parentes). Ainsi, lorsque ce dernier se produit, cela s'appelle le remplacement de méthode. En d'autres termes, si la classe enfant fournit une implémentation à une méthode avec la même signature et le même type de retour qu'une méthode déjà définie dans l'une de ses classes parentes, cette méthode est dite surchargée (remplacée) par l'implémentation de la classe enfant. Ainsi, s'il existe une méthode surchargée dans une classe, le système d'exécution devra décider quelle implémentation de méthode est utilisée. Ce problème est résolu en examinant le type exact d'objet utilisé pour l'invoquer. Si un objet de la classe parent est utilisé pour invoquer la méthode redéfinie, l'implémentation dans la classe parent est utilisée. De même, si c'est un objet de la classe enfant qui est utilisé, alors l'implémentation de la classe enfant est utilisée. Les langages de programmation modernes tels que Java, Eifell, C++ et Python permettent de remplacer les méthodes.

Qu'est-ce que la surcharge ?

La surcharge de méthode est une fonctionnalité fournie par certains langages de programmation pour créer plusieurs méthodes avec le même nom, mais avec des types d'entrée et de sortie différents. Dans les langages de programmation modernes comme Java, C, C++ et VB. NET, cette fonctionnalité est disponible. Vous pouvez surcharger une méthode en créant une autre méthode avec le même nom mais avec une signature de méthode différente ou un type de retour différent (ou les deux). Par exemple, si vous avez method1(type1 t1) et method1(type2 t2) dans la même classe, elles sont alors surchargées. Ensuite, le système devra décider lequel exécuter lorsqu'il sera appelé. Cette différenciation est faite en examinant le type du ou des paramètres passés à la méthode. Si l'argument est de type1, alors la première implémentation est appelée, tandis que s'il est de type2, alors la seconde implémentation est appelée.

Quelle est la différence entre le dépassement et la surcharge ?

Bien que le remplacement de méthode et la surcharge de méthode soient utilisés pour fournir une méthode avec différentes implémentations, il existe des différences essentielles entre ces deux concepts/techniques. Tout d'abord, les sujets de surcharge de méthode restent toujours dans des classes différentes, tandis que les sujets de surcharge de méthode restent dans la même classe. Cela signifie que le remplacement n'est possible que dans les langages de programmation orientés objet qui permettent l'héritage, tandis que la surcharge peut également être disponible dans un langage non orienté objet. En d'autres termes, vous redéfinissez une méthode dans la super classe mais vous surchargez une méthode dans votre propre classe.

Une autre différence est que les méthodes surchargées ont le même nom de méthode, la même signature de méthode et le même type de retour, mais les méthodes surchargées doivent différer dans la signature ou le type de retour (le nom doit être le même). Afin de différencier deux méthodes surchargées, le type exact d'objet utilisé pour invoquer les méthodes id utilisé, tandis que pour différencier deux méthodes surchargées, les types des paramètres sont utilisés. Une autre différence clé est que la surcharge est résolue au moment de la compilation, tandis que le remplacement est résolu au moment de l'exécution.

Conseillé: