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 super
bruges 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
|
|
---|---|
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(); |