Différence entre surcharge et dépassement | Surcharge vs dépassement

Publié: 2021-06-15

Table des matières

introduction

La programmation orientée objet joue un rôle important dans les secteurs du développement de logiciels. Plusieurs concepts sont associés à ce type de programmation comme la classe, l'objet, le polymorphisme, l'héritage, l'abstraction de données, la programmation générique et la gestion exceptionnelle.

Les développeurs trouvent toujours le concept de polymorphisme assez intéressant, qui comporte des sous-concepts tels que la surcharge de méthode, le remplacement de méthode, etc. Cependant, pour mieux comprendre le concept de polymorphisme, la différence entre surcharge et remplacement doit être comprise.

Différence entre la surcharge de méthode et le remplacement de méthode

Il existe de nombreuses différences entre la surcharge de méthode et le remplacement de méthode . La liste des différences entre la surcharge de méthode et le remplacement en Java est tabulée ci-dessous :

Surcharge de méthode Remplacer la méthode
1 Le procédé est utilisé pour augmenter la lisibilité du programme. La méthode est utilisée pour fournir l'implémentation de la méthode fournie par la superclasse.
2 Elle se pratique au sein d'une classe Apparaît dans deux classes ayant une relation IS-A (héritage). La classe de base et une classe enfant sont requises pour le remplacement.
3 Les méthodes ou fonctions doivent avoir le même nom et des signatures différentes. Les méthodes ou fonctions doivent avoir le même nom et les mêmes signatures.
4 Les paramètres utilisés dans cette méthode doivent être différents. Les mêmes paramètres doivent être utilisés en cas de remplacement de méthode.
5 C'est un exemple de polymorphisme à la compilation. La liaison de l'appel de méthode de surcharge à sa définition se produit au moment de la compilation. C'est un exemple de polymorphisme d'exécution. La liaison de l'appel de méthode substitué à sa définition se produit au moment de l'exécution.
6 Ce n'est qu'en changeant le type de retour que la surcharge de la méthode ne peut pas être effectuée. Le type de retour peut être différent ou identique. Mais les paramètres doivent être différents. Le type de retour dans le remplacement de méthode peut être identique ou covariant.
7 La surcharge de méthode peut être appliquée aux méthodes statiques. Cela signifie qu'une classe peut avoir plusieurs méthodes statiques du même nom. Le remplacement de méthode ne peut pas être appliqué aux méthodes statiques.
8 La liaison statique est utilisée pour la surcharge de méthode. La liaison dynamique est utilisée pour le remplacement de méthode.
9 De meilleures performances sont données par la surcharge de la méthode. Performances moindres par rapport à la surcharge de méthode. La raison en est que la liaison des méthodes surchargées est effectuée au moment de l'exécution.
dix Les méthodes privées et finales peuvent être surchargées. Une classe peut avoir plus d'une méthode privée/finale du même nom. Les méthodes privées et finales ne peuvent pas être remplacées. Une classe enfant ne peut pas remplacer les méthodes private/final de sa classe de base.
11 L'héritage peut ou non être requis en cas de surcharge de la méthode. L'héritage est toujours requis en cas de remplacement de méthode.
12 Il est utilisé pour ajouter plus au comportement des méthodes. Il est utilisé pour modifier le comportement des méthodes existantes.
13 Il n'est pas nécessaire d'avoir plus d'une classe dans la surcharge de méthode. Il y a toujours besoin d'au moins deux classes dans le remplacement de méthode.
14 Si la surcharge s'interrompt, l'erreur de compilation surviendra et sera facile à corriger. Si le remplacement des pauses, cela peut causer de graves problèmes dans notre programme car l'effet sera visible au moment de l'exécution.
15 La surcharge de méthode doit avoir une signature différente. La méthode qui remplace doit avoir la même signature.
16 Les modificateurs d'accès dans la méthode de surcharge peuvent être quelconques ou différents. Le modificateur d'accès de la méthode de la sous-classe doit être égal ou supérieur au modificateur d'accès de la méthode de la superclasse dans la méthode prioritaire.
17 Les exceptions levées peuvent être n'importe quoi dans le concept de surcharge de méthode. Dans le remplacement de méthode, les exceptions non vérifiées levées peuvent être n'importe quoi. Pour les exceptions vérifiées, la méthode de substitution ne doit pas lever d'exceptions nouvelles ou plus larges que celles déclarées par la méthode de substitution.
18 Le compilateur prend toujours en charge la résolution de la méthode en fonction du type de référence. La JVM prend en charge la résolution de la méthode en fonction de l'objet d'exécution.

Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Et ensuite ?

Si vous souhaitez en savoir plus sur le développement de logiciels à pile complète, consultez le programme Executive PG de upGrad & IIIT-B en développement de logiciels à pile complète, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse, plus de 9 projets et affectations, statut d'anciens élèves de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que le polymorphisme d'exécution ?

Le polymorphisme d'exécution est une sorte de polymorphisme qui implique un typage dynamique. Cela signifie que les objets peuvent être manipulés comme s'ils étaient d'un seul type. Ceci est similaire au polymorphisme statique où les objets sont manipulés comme s'ils avaient un seul type, quel que soit leur type sous-jacent. C'est l'un des cinq grands principes de conception de logiciels. Il est utilisé avec la programmation orientée objet. Cela signifie qu'une variable peut faire référence à différents objets en fonction des conditions d'exécution. Par exemple, une variable peut être utilisée pour faire référence à un objet Dog lorsque la variable est déclarée, mais pendant l'exécution du programme, la variable peut faire référence à un objet Cat. Il s'agit d'une conversion de type automatique. Par exemple, si vous avez une variable entière i et que vous lui affectez une valeur de chaîne, elle deviendra une variable de chaîne.

En quoi le dépassement est-il différent de la surcharge ?

Pouvons-nous remplacer la méthode surchargée ?

Une méthode surchargée est la même qu'une méthode normale (en termes de nombre et de type de paramètres), mais à la différence que la méthode surchargée est écrite de telle manière qu'elle peut accepter des paramètres d'un type différent de celui normal. Vous pouvez remplacer une méthode surchargée de la même manière que vous remplacez une méthode normale.