Remplacement vs surcharge
La méthode dominante et la surcharge de méthode sont deux concepts / techniques / fonctionnalités trouvées dans certains langages de programmation. Les deux concepts permettent au programmeur de fournir des implémentations différentes pour les méthodes avec le même nom. La méthode remplacée permet au programmeur de fournir une implémentation alternative au sein d'un sous-classe à une méthode déjà définie à l'intérieur de sa super classe. La surcharge de méthode permet au programmeur de fournir des implémentations différentes à plusieurs méthodes avec le même nom (au sein de la même classe).
Qu'est-ce que le remplacement?
Comme mentionné ci-dessus, une classe peut prolonger une classe Super ou une classe parentale, dans les langages de programmation orientés objet. Une classe d'enfants peut avoir ses propres méthodes ou peut éventuellement avoir ses propres implémentations aux méthodes déjà définies dans sa classe parent (ou l'une de ses grandes classes de parents). Ainsi, lorsque ce dernier se produit, il est appelé la méthode remplacée. En d'autres termes, si la classe infantile fournit une implémentation à une méthode avec le même type de signature et de retour qu'une méthode déjà définie dans l'une de ses classes de parents, cette méthode est considérée comme remplacée (remplacée) par la mise en œuvre de la classe infantile. Ainsi, s'il existe une méthode remplacée dans une classe, le système d'exécution devra décider quelle implémentation de la méthode est utilisée. Ce problème est résolu en regardant le type exact d'objet qui est utilisé pour l'invoquer. Si un objet de la classe parent est utilisé pour invoquer la méthode remplacée, alors l'implémentation dans la classe parent est utilisée. De même, s'il s'agit d'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 comme Java, Eifell, C ++ et Python permettent de remplacer la méthode.
Qu'est-ce que la surcharge?
La surcharge de méthode est une fonctionnalité fournie par certains langages de programmation pour créer plus d'une méthode 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) à l'intérieur de la même classe, alors ils sont surchargés. Ensuite, le système devra décider lequel sera exécuté lorsqu'il sera appelé. Cette différenciation est faite en regardant le type de paramètre (s) a été transmis dans 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 deuxième implémentation est appelée.
Quelle est la différence entre le remplacement et la surcharge?
Bien que la méthode remplacée et la surcharge de méthode soient utilisées pour fournir une méthode avec des implémentations différentes, il existe des différences clés entre ces deux concepts / techniques. Tout d'abord, les sujets de substitution de méthode restent toujours dans différentes classes, 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 permet l'héritage, tandis que la surcharge peut également être disponible dans un langage non orienté objet. En d'autres termes, vous remplacez une méthode dans la super classe, mais vous surchargez une méthode au sein de votre propre classe.
Une autre différence est que les méthodes remplacées ont le même nom de méthode, la signature de la méthode et le 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 remplacées, le type exact d'objet qui est utilisé pour invoquer les méthodes ID utilisées, tandis que pour différencier deux méthodes surchargées, les types de paramètres sont utilisés. Une autre différence clé est que la surcharge est résolue au moment de la compilation, tandis que la remplacement est résolue au moment de l'exécution.