Remplacement par rapport à la surcharge
La méthode Remplacement et la méthode surcharge sont deux concepts / techniques / fonctionnalités que l'on retrouve 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éthodes permet au programmeur de fournir différentes implémentations à plusieurs méthodes portant le même nom (dans la même classe).
Qu'est-ce qui est prioritaire??
Comme mentionné ci-dessus, une classe peut étendre une super classe ou une classe mère dans des langages de programmation orientés objet. Une classe enfant peut avoir ses propres méthodes ou éventuellement ses propres implémentations sur des méthodes déjà définies dans sa classe parente (ou l'une de ses grandes classes parentes). Ainsi, lorsque cela se produit, on parle de méthode de substitution 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 appeler la méthode substituée, l'implémentation de la classe parent est utilisée. De même, s'il s'agit d'un objet de la classe enfant utilisée, l'implémentation de la classe enfant est utilisée. Les langages de programmation modernes tels que Java, Eifell, C ++ et Python permettent le remplacement de méthode.
Qu'est-ce que la surcharge?
La surcharge de méthodes est une fonctionnalité fournie par certains langages de programmation pour créer plusieurs méthodes portant le même nom, mais avec des types d'entrée et de sortie différents. Dans les langages de programmation modernes tels que Java, C #, C ++ et VB.NET, cette fonctionnalité est disponible. Vous pouvez surcharger une méthode en créant une autre méthode portant 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, ils sont surchargés. Ensuite, le système devra décider lequel sera exécuté lors de son appel. Cette différenciation est faite en regardant le type du ou des paramètres ayant été passés à la méthode. Si l'argument est de type1, la première implémentation est appelée, tandis que s'il est de type2, la deuxième implémentation est appelée..
Quelle est la différence entre une surcharge et une surcharge?
Bien que la substitution de méthode et la surcharge de méthode soient utilisées 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 sur lesquels la méthode a priorité sont conservés restent dans des classes différentes, tandis que les sujets sur la surcharge de méthodes restent dans la même classe. Cela signifie que la substitution n'est possible que dans les langages de programmation orientés objet qui autorisent l'héritage, tandis que la surcharge peut également être disponible dans un langage non orienté objet. En d'autres termes, vous substituez 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 substituées ont le même nom, la signature et le type de méthode, mais les méthodes surchargées doivent différer en termes de signature ou de type de résultat (le nom doit être identique). Afin de différencier deux méthodes substituées, le type exact d'objet utilisé pour appeler les méthodes id utilisées, alors que pour différencier deux méthodes surchargées, les types des paramètres sont utilisés. Une autre différence essentielle réside dans le fait que la surcharge est résolue au moment de la compilation, tandis que la substitution est résolue au moment de l'exécution..