Vad är polymorfism i Java?

polymorfism i Java uppstår när det finns en eller flera klasser eller objekt relaterade till varandra genom arv. Med andra ord är det ett objekts förmåga att ta många former. Arv låter användare ärva attribut och metoder, och polymorfism använder dessa metoder för att utföra olika uppgifter. Så målet är kommunikation men tillvägagångssättet är annorlunda.

till exempel har du en smartphone för kommunikation., Kommunikationsläget du väljer kan vara vad som helst. Det kan vara ett samtal, ett textmeddelande, ett bildmeddelande, e-post etc. Så målet är vanligt som är kommunikation, men deras tillvägagångssätt är annorlunda. Detta kallas polymorfism.

i den här handledningen lär du dig-

  • Vad är polymorfism?
  • Java polymorfism i OOPS med exempel
  • metod åsidosättande
  • skillnad mellan överbelastning och åsidosättande
  • Vad är dynamisk polymorfism?,
  • Super nyckelord
  • skillnad mellan statisk& dynamisk polymorfism

Klicka här om videon inte är tillgänglig

Java polymorfism i OOPS med exempel

vi har en överordnad klass, ’konto’ med funktion för insättning och uttag. Kontot har 2 barnklasser
driften av insättning och uttag är samma för att spara och kontrollera konton. Så de ärvda metoderna från Kontoklass kommer att fungera.,

ändra krav på Programvara

det finns en förändring i kravspecifikationen, något som är så vanligt i programvaruindustrin. Du ska lägga till funktionalitet privilegierat bankkonto med Övertrasseringsfacilitet.

för en bakgrund är övertrassering en anläggning där du kan ta ut ett belopp mer än tillgängligt saldot i ditt konto.

så, dra tillbaka metod för privilegierade behov att genomföra på nytt., Men du behöver inte ändra den testade bit kod i besparingar och checkkonto. Detta är fördelen med OOPS

Steg 1) Så att när ”återkallad” metod för att spara konto kallas en metod från överordnad kontoklass exekveras.

steg 2) men när” dra tillbaka ” – metoden för det privilegierade kontot (övertrasseringsfaciliteten) kallas uttagsmetod som definieras i den privilegierade klassen utförs. Detta är polymorfism.,

metod åsidosättande

metod åsidosättande omdefinierar en superklassmetod i en underklass.

regler för metod som åsidosätter

  • metoden signatur dvs metod namn, parameterlista och returtyp måste matcha exakt.
  • den åsidosatta metoden kan bredda tillgängligheten men inte begränsa den, dvs om den är privat i basklassen kan barnklassen göra den offentlig men inte vice versa.,

exempel

skillnad mellan överbelastning och åsidosättande

Vad är dynamisk polymorfism?

dynamisk polymorfism är den mekanism genom vilken flera metoder kan definieras med samma namn och signatur i superklassen och underklassen. Samtalet till en åsidosatt metod löses vid körning.,

exempel på Dynamisk polymorfism:

en referensvariabel i superklassen kan hänvisa till ett underklassobjekt

 Doctor obj = new Surgeon();

överväg uttalandet

obj.treatPatient();

här är referensvariabeln” obj ” av moderklassen, men objektet som den pekar på är av barnklassen (som visas i diagrammet).

obj.,n

om en basklassreferens används för att kalla en metod, bestäms metoden som ska åberopas av JVM, beroende på objektet som referensen pekar på

till exempel, även om obj är en hänvisning till läkare, kallar den metoden för kirurg, eftersom den pekar på ett Kirurgobjekt

detta bestäms under körtiden och därmed kallas dynamisk eller run-time polymorfism

Super nyckelord

vad händer om behandlingspatientmetoden i kirurgklassen vill utföra den funktionalitet som definieras i läkarklassen och sedan utföra sin egen specifika funktionalitet?,
i detta fall kan nyckelordsuperanvändas för att komma åt metoder för den överordnade klassen från den underordnade klassen.
behandlingspatientmetoden i Kirurgklassen kan skrivas som:

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

sökordet super kan användas för att komma åt alla datamedlemmar eller metoder i superklassen i underklassen.,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., det gäller metoden åsidosättande.

eventuella fel löses vid kompilering. Eftersom koden inte exekveras under kompileringen, därav namnet statiskt.

Ex:

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

om en referensvariabel anropar en åsidosatt metod bestäms metoden som ska åberopas av objektet, din referensvariabel pekar på. Detta är kan endast bestämmas vid körning när kod i under körning, därav namnet dynamic.,

Ex:

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