qu’est-Ce que le Polymorphisme en Java?
Le polymorphisme en Java se produit lorsqu’il existe une ou plusieurs classes ou objets liés les uns aux autres par héritage. En d’autres termes, c’est la capacité d’un objet à prendre de nombreuses formes. L’héritage permet aux utilisateurs d’hériter des attributs et des méthodes, et polymorphism utilise ces méthodes pour effectuer différentes tâches. L’objectif est donc de communication, mais l’approche est différente.
Par exemple, vous avez un smartphone pour la communication., Le mode de communication que vous choisissez pourrait être n’importe quoi. Il peut être un appel, un sms, un mms, mail, etc. L’objectif est donc de commun qu’est la communication, mais leur approche est différente. Cela s’appelle le Polymorphisme.
Dans ce tutoriel, vous allez apprendre-
- qu’est-Ce que le Polymorphisme?
- Polymorphisme Java dans les POO avec Exemple
- Méthode de substitution
- Différence entre la surcharge et la substitution
- Qu’est-ce que le polymorphisme dynamique?,
- Super Keyword
- Différence entre Static & Polymorphisme dynamique
Cliquez ici si la vidéo n’est pas accessible
Polymorphisme Java dans les POO avec Exemple
Nous avons une classe parente, ‘Account’ avec fonction de dépôt et de retrait. Compte a 2 classes enfants
L’opération de dépôt et de retrait est la même pour l’épargne et la vérification des comptes. Ainsi, les méthodes héritées de la classe Account fonctionneront.,
Changement de Logiciel Exigence
Il y a un changement dans la spécification des exigences, quelque chose qui est tellement répandue dans l’industrie du logiciel. Vous êtes censé ajouter une fonctionnalité compte bancaire privilégié avec facilité de découvert.
Pour un contexte, le découvert est une facilité où vous pouvez retirer un montant supérieur au solde disponible dans votre compte.
Donc, retirer la méthode pour les besoins privilégiés à implémenter à nouveau., Mais vous ne changez pas le morceau de code testé dans l’épargne et le compte courant. C’est l’avantage de OOPS
Étape 1) De sorte que lorsque la méthode « retirée » pour enregistrer le compte est appelée, une méthode de la classe de compte parent est exécutée.
Étape 2) Mais lorsque la méthode « Retirer » pour le compte privilégié (facilité de découvert) est appelée méthode de retrait définie dans la classe privilégiée est exécutée. C’est du polymorphisme.,
la redéfinition de Méthode
la redéfinition de Méthode est la redéfinition d’une super-classe de la méthode dans une sous-classe.
Règles de remplacement de la méthode
- La signature de la méthode, c’est-à-dire le nom de la méthode, la liste des paramètres et le type de retour doivent correspondre exactement.
- La méthode remplacée peut élargir l’accessibilité mais pas la restreindre, c’est-à-dire que si elle est privée dans la classe de base, la classe enfant peut la rendre publique mais pas l’inverse.,
Exemple
la Différence entre la Surcharge et en remplaçant
qu’est-Ce que Dynamique Polymorphisme?
Le polymorphisme dynamique est le mécanisme par lequel plusieurs méthodes peuvent être définies avec le même nom et la même signature dans la superclasse et la sous-classe. L’appel à une méthode remplacée est résolu au moment de l’exécution.,
Exemple de polymorphisme dynamique:
Une variable de référence de la super classe peut faire référence à un objet de sous-classe
Doctor obj = new Surgeon();
Considérez l’instruction
obj.treatPatient();
Ici, la variable de référence « obj » est de la classe parente, mais l’objet le diagramme).
obj.,n
Si une référence de classe de base est utilisée pour appeler une méthode, la méthode à invoquer est décidée par la JVM, en fonction de l’objet vers lequel la référence pointe
Par exemple, même si obj est une référence à Doctor, elle appelle la méthode de Surgeon, car elle pointe vers un objet Surgeon
Super Keyword
Que se passe-t-il si la méthode treatPatient de la classe Surgeon veut exécuter la fonctionnalité définie dans la classe Doctor, puis exécuter sa propre fonctionnalité spécifique?,
Dans ce cas, le mot clé super
peut être utilisé pour accéder aux méthodes de la classe parent à partir de la classe enfant.
La méthode treatPatient dans la classe Surgeon pourrait être écrite comme:
treatPatient(){ super.treatPatient(); //add code specific to Surgeon}
Le mot-clé super peut être utilisé pour accéder à n’importe quel membre de données ou méthodes de la super classe dans la sous-classe.,br>Example:-To learn Inheritance, Polymorphism & super keyword
Step 1) Copy the following code into an Editor
Difference between Static & Dynamic Polymorphism
|
|
---|---|
It relates to method overloading., | Il concerne la méthode de remplacement. |
Les erreurs éventuelles sont résolues au moment de la compilation. Puisque le code n’est pas exécuté lors de la compilation, d’où le nom static. Ex: void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. |
Dans le cas où une variable de référence appelle une méthode surchargée, la méthode à invoquer est déterminée par l’objet vers lequel pointe votre variable de référence. Cela ne peut être déterminé qu’à l’exécution lorsque le code est en cours d’exécution, d’où le nom dynamique., Ex: //reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient(); |