Hvad er polymorfisme i Java?

polymorfisme i Java opstår, når der er en eller flere klasser eller objekter relateret til hinanden ved arv. Med andre ord er det et objekts evne til at tage mange former. Arv lader brugerne arve attributter og metoder, og polymorfisme bruger disse metoder til at udføre forskellige opgaver. Så målet er kommunikation, men tilgangen er anderledes.

for eksempel har du en smartphone til kommunikation., Den kommunikationstilstand, du vælger, kan være hvad som helst. Det kan være et opkald, en sms, en billedbesked, mail osv. Så målet er fælles, der er kommunikation, men deres tilgang er anderledes. Dette kaldes polymorfisme.

i denne vejledning lærer du –

  • hvad er polymorfisme?
  • Java Polymorfi i OOP er med Eksempel
  • Metode Overordnede
  • Forskellen mellem Overbelastning og Altoverskyggende
  • Hvad er Dynamisk Polymorfi?,
  • Super Søgeord
  • Forskellen mellem Statiske & Dynamisk Polymorfi

Klik her hvis videoen ikke tilgængelig

Java Polymorfi i OOP er med Eksempel

Vi har en overordnet klasse, “Konto” med funktion af depositum og trække. Konto har 2 børneklasser
driften af indbetaling og tilbagetrækning er den samme for at gemme og kontrollere konti. Så de nedarvede metoder fra konto klasse vil arbejde.,

Skift i Software-Krav

Der er en ændring i krav specifikationen, noget, der er så almindelige i software-industrien. Du skal tilføje funktionalitet privilegeret bankkonto med overtræk facilitet.

for en baggrund, overtræk er en facilitet, hvor du kan hæve et beløb mere end tilgængelig saldoen på din konto.

så trække metode til privilegerede behov for at gennemføres på ny., Men du behøver ikke ændre den testede stykke kode i besparelser og checkkonto. Dette er en fordel, OOPS

Trin 1) Sådan, at når den “trukket tilbage” metode til at gemme kontoen kaldes en metode fra overordnede hensyn klasse, der er udført.

Trin 2) Men når “trække” – metoden for den privilegerede konto (kassekredit) kaldes tilbagetrækningsmetode defineret i den privilegerede klasse udføres. Dette er polymorfisme.,

Metode Overordnede

Metode Væsentlige er at omdefinere en super klasse metode i en sub-klasse.

regler for metode overstyring

  • metoden signatur dvs.metode navn, parameter liste og retur type skal matche nøjagtigt.
  • den tilsidesættede metode kan udvide tilgængeligheden, men ikke indsnævre den, dvs.hvis den er privat i basisklassen, kan børneklassen gøre den offentlig, men ikke omvendt.,

Eksempel

Forskellen mellem Overbelastning og Altoverskyggende

Hvad er Dynamisk Polymorfi?

dynamisk polymorfisme er den mekanisme, hvormed flere metoder kan defineres med samme navn og underskrift i superklassen og underklassen. Opkaldet til en tilsidesat metode løses ved køretid.,

Dynamisk Polymorfi Eksempel:

En reference-variabel i super klasse kan henvise til en sub-klasse objekt

 Doctor obj = new Surgeon();

Overvej sætning

obj.treatPatient();

Her en reference-variabel “obj” er af den overordnede klasse, men det objekt, den peger på er barnets klasse (som vist på tegningen).

obj.,n

Hvis en base class reference bruges til at kalde en metode, den metode, der anvendes er besluttet af JVM, afhængigt af den objekt-reference peger på

For eksempel, selv om obj er en henvisning til Læge, det kalder metoden af Kirurgen, som det peger på en Kirurg objekt

Dette er besluttet under run-time, og derfor kaldes dynamisk eller run-time polymorfi

Super Søgeord

Hvad hvis treatPatient metode i den Kirurg klasse ønsker at udføre den funktionalitet, der er defineret i Læge-klasse, og derefter udføre sine egne specifikke funktionalitet?,
i dette tilfælde kan nøgleord superbruges til at få adgang til metoder til forældreklassen fra barneklassen.
behandlingsmetoden i Kirurgklassen kan skrives som:

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

nøgleordet super kan bruges til at få adgang til ethvert datamedlem 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 vedrører metode tvingende.

fejl, hvis nogen, løses på kompileringstidspunktet. Da koden ikke udføres under kompilering, deraf navnet statisk.

e.:

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

Hvis en referencevariabel kalder en overordnet metode, bestemmes metoden, der skal påberåbes af objektet, din referencevariabel peger på. Dette er kan kun bestemmes på runtime når kode i under udførelse, deraf navnet dynamisk.,

Ex:

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