Introduksjon til polymorfisme i Java
Polymorfisme er definert som et konsept der sammen med hjelp av en handling på flere måter kan utføres. Ordet stammet fra de to greske ordene, som er både poly og morfer. Her, som du kanskje vet, innebærer "poly" mange, så vel som "morfer", mange former. Derfor ville ordet polymorfisme antyde mange former. La oss nå forstå polymorfisme i java i detalj.
Hvordan fungerer polymorfisme i Java?
Polymorfisme er en programmeringsegenskap for OOO. Hver gang vi bruker den, har en klasse muligheten til å utstille mange funksjoner selv om de viser det felles grensesnittet. Derfor kan vi anta at det lange ordet faktisk forteller et veldig enkelt konsept.
Det som er verdt å merke seg om polymorfisme er at hele arbeidskoden som finnes i mange klasser, ikke egentlig trenger å forstå klassen som blir brukt av den på samme måte som den brukes.
La oss anta det virkelige eksemplet på polymorfisme. La oss anta knappen. Dere vet alle at hvis vi bruker litt trykk, vil du kunne trykke på knappen, men vi vil ikke vite resultatet av å sette trykk på knappen og formålet med bruken. Så poeng at her å ta vare på er at uansett ikke resultatet vil påvirke prosedyren som blir brukt.
Så det grunnleggende målet med polymorfisme er å lage gjenstander som kan byttes ut avhengig av behovene.
Typer polymorfisme i Java
De to typene polymorfisme er kompilertidspolymorfisme og polymorfisme av løpetid. Kompileringstid-polymorfisme utføres ved metodebelastning og runtime-polymorfisme ved metodeoverskridelse.
Runtime-polymorfisme, også kalt Dynamic Method Dispatch, er en prosess der oppfordring til en overstyret metode blir løst ved kjøretid til tross for ved samlingen. Her blir den overstyrte metoden kalt gjennom en referansevariabel til en foreldreklasse. Datamedlemmer kan heller ikke oppnå Runtime-polymorfisme.
Betydningen av polymorfisme i Java
Hvis vi forkaster dynamisk polymorfisme så vel som statisk polymorfisme, eksisterer det i programmering noen av programmeringsegenskapene til Java som viser polymorfisme som er annet enn disse to viktige typene.
De er disse - Tvang, operatøroverbelastning og polymorfe parametere.
tvang
La oss prøve å få betydningen av tvang gjennom dette eksemplet. Anta at det eksisterer verdien til strengen som skal være co-verdi: Anta at det andre tallet som har fått verdien 2. Nå, hva vil skje når du konkaterer denne strengverdien sammen med dette tallet? Utfallet av at vi får ut av denne sammenkjøringen, vil være “co value: 2”. Dette er kjent som Tvang. Dette er en konvertering som er av implisitt type som utføres for å forhindre feil.
Overbelastning av operatøren
Når vi begynner med konseptet med overbelastning av operatører, la meg se på ett scenario. Anta at det er strengen som har verdien “Operere” og andre som har verdien som “Overbelastning”. Da ville vi benyttet plussymbolet (+) på samme måte som tillegg av 2 tall. Dette (+) vil være sammenlagt. Hvis vi vurderer to heltall, vil vi legge til disse to tallene. Hver gang ett symbol eller en operatør har muligheten til å endre tolkningen med tanke på fremgangsmåten som er brukt, kalles polymorfismetypen som blir gjort kjent som Operatøroverbelastning.
Polymorfe parametere
Det betyr å gi tilgang til ethvert objekt på noen av disse måtene nedenfor gitt som under -
- Bruk av en referansevariabel som tilhører begge foreldreklassen.
- Bruk av en referansevariabel som hører til klassen der den eksisterer.
Polymorfisme Omfang
Binding betyr tilkobling av en metodeanrop til en metodekropp. Det finnes to typer bindinger:
- 1. st er statisk binding som betyr hver gang gjenstandstypen er blitt bestemt under kompileringstiden.
- 2. nd er dynamisk binding som betyr hver gang objekttypen er blitt bestemt i løpet av løpetiden.
Den eneste grunnen til hvorfor polymorfismen er påkrevd, ligger da det er enormt nødvendig i forbindelse med gjennomføringen av arv. I tillegg spiller det en veldig viktig rolle slik at objektene kan arve mange strukturer når de deler grensesnittet. Polymorfisme er blitt nevnt tydelig som bare en som er kartlagt for mange.
Eksempler på polymorfisme i Java
Nedenfor er de forskjellige eksemplene på polymorfisme i Java:
Eksempel 1 - Java-program for å vise frem metodeoverbelastning
Kode:
class methodOverload (
static int multi(int x, int y)
(
return x * y;
)
// Method with the same name but with 2 double arguments
static double multi(double x, double y)
(
return x * y;
)
)
class Main (
public static void main(String() args)
(
System.out.println(methodOverload.multi(6, 2));
System.out.println(methodOverload.multi(1.2, 1.2));
)
)
Produksjon:
Eksempel 2 - Java-program for å vise overbelastning av operatører
Kode:
class operator (
void oper(String s, String s2)
(
String s = s + s2;
System.out.println("Concatenated String is"
+ s);
)
void oper(int a, int b)
(
int c = a + b;
System.out.println("Sum is : " + c);
)
)
class Main (
public static void main(String() args)
(
operator o = new operator();
o.oper(1, 2);
o.oper("hi", "bye");
)
)
Produksjon:
Eksempel # 3 - Java-program for metodeoverbelastning
Kode:
class Multi (
// Method with 2 parameter
static int Multi(int a, int b)
(
return a * b;
)
static int Multi(int a, int b, int c)
(
return a * b * c;
)
)
class Main (
public static void main(String() args)
(
System.out.println(Multi.Multi(2, 3));
System.out.println(Multi.Multi(2, 3, 3));
)
)
Produksjon:
Konklusjon
Den eneste grunnen til hvorfor polymorfisme er påkrevd, ligger da dens konsept er enormt nødvendig i gjennomføringen av arv. I tillegg spiller det en veldig viktig rolle slik at objektene kan arve mange strukturer når de deler grensesnittet. Polymorfisme er blitt nevnt tydelig som bare en som er kartlagt for mange.
Anbefalte artikler
Dette er en guide til polymorfisme i Java. Her diskuterer vi arbeid med polymorfisme i Java med dens typer, og viktighet sammen med forskjellige eksempler og kodeimplementering. Du kan også se på følgende artikler for å lære mer -
- Polymorfisme i C #
- JTextField i Java
- Overbelastning og overstyring i C ++
- Hva er Java arv?
- Overbelastning i Java
- Python-overbelastning
- Komplett guide til arv i Python
- Typer og håndteringsfeil i JavaScript
- Fordeler med statisk binding og dynamisk innbinding