Indholdsfortegnelse
Inden for objektorienteret programmering er der 3 grundlæggende søjler, arv, som giver os mulighed for at opnå attributter og metoder for en forældreklasse, indkapsling der giver os mulighed for at fastholde en klasses metoder og egenskaber, og som ikke bør ses uden for den og den tredje, der er polymorfisme.PolymorfismeOrdet polymorfisme kommer fra et græsk ord og betyder, at det har mange former, så så kan vi definere, at polymorfisme er evnen til at bruge mange former i Java.
For at forstå, hvad polymorfisme Vi skal forstå nøglebegreberne, en af dem er typerne, en type er definitionen, der genereres fra en klasse, så dette fører til to yderligere relaterede begreber.
UndertypenNår vi opretter en klasse, der arver fra en anden, opretter vi en undertype, da det er en type, der stammer fra en overlegen type, kan vi f.eks. sige, at hvis vi har en klasse Geometrisk figur og ud fra dette opretter vi en klasse Cirkel der arver det, så definerer vores Circle -klasse en undertype af GeometricFigure.
SupertypenDet er det modsatte, når en klasse arves, bliver den til en superklasse eller forældreklasse, derfor viser det sig nu at være supertype, det vil sige den primære type, eller som hjælper med at definere dens undertyper, hvis vi følger eksemplet, som vi allerede definerede, ville supertypen være klassen Geometrisk figur.
Med dette definerer vi de begreber, der vil hjælpe os med at forstå polymorfisme, hvis vi sætter eksemplet lidt mere omfattende kan vi sige, at en cirkel altid vil være af typen Geometrisk figur, men ikke alle typer Geometrisk figur de vil være af typen Cirkel, hvis vi taler om de klasser, som vi lige har defineret, for eksempel hvis vi nu opretter en underklasse, der arver fra klassen Geometrisk figur og det hedder Rektangel, nu har vi en ny undertype, som stadig er af typen Geometrisk figur men den får en ny form, og her er polymorfismen.
Da vi har set teorien om typer, kan vi så sige, at en underklasse altid vil være af typen af sin forældreklasse, men at forældreklassen ikke vil være af typen af sin underklasse eller barneklasse, med dette kan vi så se følgende eksempel, hvor vi i en metode beder om et objekt af typen Geometrisk figurDerfor kan vi modtage dens mange former, i dette tilfælde kan vi modtage et cirkel- eller rektangelobjekt, da begge, på trods af at de er forskellige, deler supertypen.
Lad os se i det følgende billede en kode, der viser os, hvordan en metode ville opføre sig med polymorfisme:
I dette eksempel forventer show -objekt -metoden et objekt af typen Geometrisk figur, hvis vi ved, at Cirkel og rektangel er underklasser af FigureGeometric, så kan vi videregive deres objekter til metoden, da de er forskellige former for FigureGeometric og opfylder funktionen.
Vi har allerede lært at bruge den tredje søjle for objektorientering, nu kan vi bygge mere omfattende metoder, der kan genbruges i forskellige implementeringer af vores programmer i Java.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt