Wat is polymorfisme in Java?

polymorfisme in Java treedt op wanneer er een of meer klassen of objecten aan elkaar gerelateerd zijn door overerving. Met andere woorden, het is het vermogen van een object om vele vormen aan te nemen. Overerving laat gebruikers erven attributen en methoden, en polymorfisme gebruikt deze methoden voor het uitvoeren van verschillende taken. Dus, het doel is communicatie, maar de aanpak is anders.

u hebt bijvoorbeeld een smartphone voor communicatie., De communicatiemodus die u kiest, kan van alles zijn. Het kan een oproep, een sms-bericht, een beeldbericht, e-mail, enz. Dus, het doel is gemeenschappelijk dat is communicatie, maar hun aanpak is anders. Dit heet polymorfisme.

in deze tutorial leert u –

  • Wat is polymorfisme?
  • Java polymorfisme in OOP ‘ s met voorbeeld
  • methode overschrijdend
  • verschil tussen overbelasting en overschrijdend
  • Wat is dynamisch polymorfisme?,
  • Super trefwoord
  • verschil tussen statisch & dynamisch polymorfisme

Klik hier als de video niet toegankelijk is

Java polymorfisme in OOP ’s met voorbeeld

hebben we één bovenliggende klasse,’ Account ‘ met functie van storten en opnemen. Rekening heeft 2 kinderklassen
de werking van storten en opnemen is hetzelfde voor het opslaan en controleren van rekeningen. Dus de overgeërfde methoden van Account klasse zal werken.,

verandering in Softwarevereiste

Er is een verandering in de vereiste specificatie, iets dat zo gebruikelijk is in de software-industrie. U wordt verondersteld om functionaliteit bevoorrechte bankrekening met rekening-courantkrediet faciliteit toe te voegen.

voor een achtergrond is debetstand een faciliteit waar u een bedrag kunt opnemen dat hoger is dan het beschikbare saldo op uw rekening.

So, Trek methode voor bevoorrechte behoeften opnieuw geïmplementeerd., Maar je verandert niet het geteste stukje code in spaar-en betaalrekening. Dit is het voordeel van OOPS

Stap 1) zodat wanneer de” ingetrokken ” methode voor het opslaan van rekening wordt aangeroepen een methode uit de bovenliggende rekeningklasse wordt uitgevoerd.

Stap 2) maar wanneer de” terugtrekking ” methode voor de bevoorrechte rekening (rekening-courantkrediet faciliteit) wordt genoemd terugtrekking methode gedefinieerd in de bevoorrechte klasse wordt uitgevoerd. Dit is polymorfisme.,

methode overschrijven

methode overschrijven herdefinieert een superklasse methode in een subklasse.

regels voor Methode overschrijven

  • De method signature I.E. method name, parameterlijst en return type moeten exact overeenkomen.
  • de overschrijdende methode kan de toegankelijkheid vergroten maar niet verkleinen, dat wil zeggen dat als het privé is in de basisklasse, de onderliggende klasse het openbaar kan maken, maar niet omgekeerd.,

voorbeeld

verschil tussen overbelasting en overschrijdend

Wat is dynamisch polymorfisme?

dynamisch polymorfisme is het mechanisme waarmee meerdere methoden kunnen worden gedefinieerd met dezelfde naam en handtekening in de superklasse en subklasse. De aanroep naar een overgeschreven methode wordt opgelost tijdens het uitvoeren.,

dynamisch polymorfisme voorbeeld:

een referentievariabele van de superklasse kan verwijzen naar een subklasse object

 Doctor obj = new Surgeon();

beschouw het statement

obj.treatPatient();

Hier is de referentievariabele “obj” van de ouderklasse, maar het object waarnaar het verwijst is van de dochterklasse (zoals getoond in de diagram).

obj.,n

als een basisklasse referentie wordt gebruikt om een methode aan te roepen, wordt de te gebruiken methode bepaald door de JVM, afhankelijk van het object waarnaar de referentie verwijst, bijvoorbeeld, ook al is obj een verwijzing naar arts, het noemt de methode van chirurg, omdat het wijst naar een chirurg object

Dit wordt beslist tijdens run-time en dus aangeduid als dynamisch of run-time polymorfisme

super keyword

wat als de treatpatient-methode in de chirurgieklas de in de DOKTERSKLAS gedefinieerde functionaliteit wil uitvoeren en vervolgens zijn eigen specifieke functionaliteit wil uitvoeren?,
In dit geval kan het trefwoord supergebruikt worden om toegang te krijgen tot methoden van de ouderklasse van de dochterklasse.
De treatPatient methode in de Surgeon class kan worden geschreven als:

treatPatient(){ super.treatPatient(); //add code specific to Surgeon}

het trefwoord super kan worden gebruikt om toegang te krijgen tot alle data leden of methoden van de super klasse in de subklasse.,br>Example:-To learn Inheritance, Polymorphism & super keyword

Step 1) Copy the following code into an Editor

Difference between Static & Dynamic Polymorphism

Static Polymorphism
Dynamic Polymorphism
It relates to method overloading., het heeft betrekking op Methode overschrijven.

fouten, indien aanwezig, worden opgelost tijdens het compileren. Omdat de code niet wordt uitgevoerd tijdens het compileren, vandaar de naam static.

Ex:

void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. 

in het geval dat een referentievariabele een overgeschreven methode aanroept, wordt de methode bepaald door het object, waar uw referentievariabele naar wijst. Dit kan alleen worden bepaald tijdens runtime wanneer code in onder uitvoering, vandaar de naam dynamic.,

Ex:

//reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient();