Denne oppskrivningen presenterer en grundig oversikt over typer polymorfisme som listet nedenfor:
Så la oss komme i gang!
Hva er polymorfisme i Java
Ordet polymorfisme er en kombinasjon av to greske ord Poly betyr mange og morphs betyr former derfor kombinert ordet Polymorfisme midler mange/flere former. Polymorfisme lar oss utføre en spesifikk oppgave på forskjellige måter
Eksempel
La oss vurdere de nedenfor listede eksempler i den virkelige verden for å forstå begrepet polymorfisme:
Dyr lyder: Løve brøler, hundebjeffer, heste naboer og så videre.
La oss nå forstå det ovennevnte konseptet når det gjelder Java-programmering, i dette eksemplet Dyr er en klasse, og “Lyder ()” er metoden:
Her Dyr er en generell klasse som ikke kan begrenses med bare en lyd som et brøl, bark osv. Så en klasse vil ha en generisk implementering som kan utvides med de andre klassene.
Dessuten, Løve, Hund, og Hest (underklasser) kan utvide egenskapene til foreldreklassen Dyr. Barneklassene vil arve funksjonen til foreldreklassen og kan overstyre implementeringen av denne funksjonen.
Så polymorfismen i Java lar deg bruke den samme metoden for å utføre forskjellige funksjonaliteter. I Java kan polymorfisme oppnås ved hjelp av kompileringstid eller kjøretid.
Statisk/kompilert-tid polymorfisme i Java
I polymorfisme av kompileringstid er objektene til CALSS avgrenset med metodene ved kompileringstid. Polymorfismen for kompileringstid håndteres av kompilatoren, og den støtter konseptet overbelastning av metode.
Metodeoverbelastningen i polymorfisme av kompileringstid gjør at en klasse kan lage flere metoder med samme navn, men forskjellige implementeringer når det gjelder parametere. Og det finnes noen regler for disse parametrene som listet nedenfor:
Vi kan lage flere metoder med samme navn, men med en annen sekvens/parameters rekkefølge.
Vi kan lage mer enn en metode med samme navn, men med forskjellige datatyper av parametere:
Vi kan lage flere metoder med samme navn, men med et annet antall parametere.
La oss vurdere et eksempel for den dype forståelsen av polymorfisme av kompileringstid:
Eksempel
I dette eksemplet opprettet vi to klasser:
Multiplikasjon.Java
De Multiplikasjon Klasse lager tre metoder med samme navn "produkt()", Den første metoden tar to heltallverdier, den andre tar to doble verdier og den tredje tar tre heltallverdier:
pakkehoved;Skjermbildet med overgitt kode vil være slik:
Hoved.Java
Innen Hoved Klasse, vi opprettet objektet for multiplikasjonsklasse og kalte alle tre metodene for Multiplikasjon klasse:
pakkehoved;Den komplette koden til Hoved Klasse vises i følgende figur:
Utgangen vil gå slik:
Fra output ovenfor observerer vi at:
Da vi passerte de to int verdier deretter produkt metode som har to int Parametere blir utført.
Da vi passerte de tre int verdier deretter produkt metode som har tre int Parametere blir utført.
Tilsvarende når vi passerte de to dobbelt verdier deretter produkt metode som har to dobbelt Parametere blir utført.
Dynamisk/runtime polymorfisme i java
I Runtime Polymorfisme, objektene er avgrenset med metodene ved kjøretid (dynamisk binding). Den dynamiske eller runtime -polymorfismen støtter begrepet Metode overstyrer.
La oss se på det undergitte eksemplet for den dype forståelsen av runtime-polymorfisme.
Eksempel
Kodebiten nedenfor oppretter tre klasser: Person, ansatt, og Avdeling, de Person Klasse er en foreldreklasse, Ansatt Klassen strekker seg Person klasse og Avdeling Klassen avslutter Ansatt klasse.
klassepersonBarneteklassene utvider skrive ut() metode fra foreldreklassene og de har også sin egen implementering av den trykte () metoden. Og innenfor hovedmetoden lager vi gjenstand for hver klasse og kaller skrive ut() Metode med det respektive klasseobjektet. Den komplette koden og utgangen er gitt i følgende skjermbilde:
Ovennevnte utdata bekrefter at når vi kaller utskriftsfunksjonene med hvert barneklasseobjekt, overstyrer de implementeringen av foreldreklassen () -funksjonen ().
Konklusjon
Polymorfisme lar oss lage flere metoder med samme navn, men med forskjellige implementeringer i foreldre- og barneklasser. Det kan oppnås enten ved kompileringstid som støtter begrepet overbelastning av metode eller ved kjøretid som støtter begrepet overordnede. Denne oppskrivningen presenterer en detaljert oversikt over runtime og kompileringstidspolymorfisme, og den forklarer hva som er polymorfisme, dens typer og regler for å implementere hver type.