Différence clé - surcharge vs remplacement en Java
La programmation orientée objet (POO) est un paradigme majeur du développement logiciel. C'est une méthodologie pour concevoir un programme utilisant des classes et des objets. Une classe est un plan. Il décrit ce que doit contenir l'objet. Il définit les propriétés ou les attributs et les méthodes dont l'objet doit être composé. Par conséquent, un objet est une instance d'une classe. Ces objets communiquent avec d'autres objets. Un concept majeur de la POO est le polymorphisme. C'est la capacité d'un objet à se comporter de plusieurs façons. Le polymorphisme est classé en deux sections qui surchargent et remplacent. Cet article traite de la différence entre ces deux en Java. La principale différence entre la surcharge et la substitution en Java est que la surcharge est la possibilité de créer plusieurs méthodes du même nom avec différentes implémentations et la substitution consiste à fournir une implémentation pour une méthode de sous-classe qui existe déjà dans la superclasse.
Qu'est-ce que la surcharge en Java ?
La surcharge est la possibilité de créer plusieurs méthodes du même nom avec différentes implémentations. Reportez-vous au code Java ci-dessous.
Figure 01: Programme Java qui explique la surcharge avec un nombre différent d'arguments
Selon le programme ci-dessus, la classe A contient deux méthodes portant le même nom. La première méthode de somme a deux paramètres. La deuxième méthode de somme a trois paramètres. Lors de la création d'un objet de type A et de l'appel de sum(2, 3), il appellera la méthode sum avec deux paramètres qui sont sum(int a, int b) et renvoie 5. Lors de la création d'un objet de type A et de l'appel de sum(2, 3, 4), il appellera l'autre méthode sum avec trois paramètres qui est la somme (int a, int b, int c) et renvoie 9.
Le nom de la méthode est le même mais le nombre de paramètres est différent. On peut observer que le même objet se comporte différemment. Ce concept est connu sous le nom de surcharge. Il est également appelé Static Binding ou Compiles Time Polymorphism.
Il peut également être surchargé avec différents types de données. Reportez-vous au code Java ci-dessous.
Figure 02: Programme Java qui explique la surcharge avec un nombre différent d'arguments
Selon le programme ci-dessus, la classe A consiste en deux méthodes portant le même nom. La méthode sum(int a, int b) reçoit deux valeurs entières. La somme (double a double b) reçoit deux valeurs doubles. Lors de la création de l'objet de type A et de l'appel de sum(2, 3), il appellera sum(int a, int b) et renverra la valeur 5. Lors de l'appel de sum(3.4, 5.6), il appellera sum(double a double b) et renvoie la valeur 9.0. Dans cet exemple, les méthodes ont le même nom, mais un type de variable différent. C'est aussi une surcharge.
Qu'est-ce que la priorité en Java ?
En Java, il est possible de construire des sous-classes avec des classes déjà existantes. Plutôt que de créer la nouvelle classe depuis le début, il est possible d'utiliser les propriétés et les méthodes de la classe déjà existante. La classe existante est la superclasse et la classe dérivée est la sous-classe. Lorsque la sous-classe fournit une implémentation pour une méthode, qui est déjà dans la superclasse, on parle de redéfinition. Reportez-vous au programme Java ci-dessous.
Figure 03: Programme Java pour la redéfinition
Selon le programme ci-dessus, la classe A a une méthode display(). La classe B s'étend de la classe A, de sorte que les propriétés et les méthodes de la classe A sont accessibles par la classe B. La classe B a la méthode display() avec une implémentation spécifique. Lors de la création d'un objet de type A et de l'appel de la méthode d'affichage, il donnera la sortie B. Même si la classe A a une méthode d'affichage, elle est remplacée par la méthode d'affichage de la classe B. La sous-classe implémente une méthode qui existe déjà dans la superclasse.
Ce concept est un type de polymorphisme connu sous le nom de dépassement. Il est également appelé Late Binding, Dynamic Binding, Runtime Polymorphism.
Quelles sont les similitudes entre la surcharge et le remplacement en Java ?
- Les deux sont des types de polymorphisme.
- En surcharge et en surcharge, les méthodes portent le même nom.
Quelle est la différence entre la surcharge et le remplacement en Java ?
Surcharge vs remplacement en Java |
|
La surcharge en Java est la possibilité de créer plusieurs méthodes du même nom avec différentes implémentations. | La substitution en Java fournit une implémentation spécifique dans la méthode de la sous-classe pour une méthode déjà existante dans la superclasse. |
Paramètres | |
En surcharge, les méthodes ont le même nom mais un nombre de paramètres différent ou un type de paramètres différent. | En surcharge, les méthodes ont le même nom et les paramètres doivent être les mêmes. |
Thèmes | |
Une surcharge se produit au sein de la classe. | Le remplacement se produit dans les deux classes qui ont une relation d'héritage. |
Synonymes | |
La surcharge est appelée polymorphisme en temps compilé. | Le remplacement est appelé polymorphisme d'exécution. |
Résumé - Surcharge vs remplacement en Java
Le polymorphisme est un concept majeur de la programmation orientée objet. Il permet à un objet de se comporter de plusieurs manières. Il peut s'agir d'une surcharge ou d'un dépassement. La surcharge est le polymorphisme au moment de la compilation et le dépassement est le polymorphisme à l'exécution. Ils sont utiles dans le développement d'applications logicielles. La différence entre le remplacement et la surcharge est que la surcharge est la possibilité de créer plusieurs méthodes du même nom avec différentes implémentations et que le remplacement fournit une implémentation spécifique dans une méthode de sous-classe pour une méthode déjà existante dans la superclasse. Il est possible d'implémenter à la fois la surcharge et le remplacement en Java.
Télécharger le PDF Overloading vs Overriding in Java
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre surcharge et remplacement en Java