OOP-prinsipper: Polymorfisme
Polymorfisme
Polymorfisme er et annet prinsipp innen OOP. Du har allerede støtt på polymorfisme når du overlastet og overstyrte metoder. Generelt er dette essensen av polymorfisme. Men definisjonen av polymorfisme kan virke litt skremmende:
Men i virkeligheten er det mye enklere enn det ser ut. Polymorfisme kan, enkelt forklart, deles inn i 2 deler:
- Metodeoverlasting: det du lærte i dette kapittelet, men la oss repetere.
La oss se på et eksempel: vi må skrive en metode som tar en int
-parameter og returnerer en String
, samt en metode som gjør det samme, men med en long
-parameter. La oss se på kodeeksempelet:
Main.java
1234567public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Som du kan se ovenfor, har vi opprettet to metoder med samme navn, men som kan utføre ulike oppgaver. Dette kalles metodeoverlasting.
- Metodeoverstyring:
Du har støtt på dette emnet tidligere da du overstyrte
toString
-metoden i denne delen. Men la oss gå gjennom det én gang til.
La oss se på et kodeeksempel som viser hvordan vi kan overstyre en metode. Vi har en klasse kalt Airplane
som arver fra Transport
-klassen. I Transport
-klassen finnes det en metode som heter move
, som returnerer "This transport has started moving".
Vi ønsker at flyet skal "starte å fly" i stedet for "å bevege seg". For å oppnå dette vil vi overstyre move
-metoden i barneklassen:
Transport.java
Airplane.java
1234567public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Som du kan se, har vi overstyrt metoden fra superklassen i subklassen som nødvendig.
På denne måten utfyller polymorfisme arv svært godt. Gjennom polymorfisme kan vi enkelt og optimalt utvide koden vår, noe som gjør den fleksibel.
1. Hvorfor trenger vi polymorfisme i Java?
2. Hvordan utfyller polymorfisme arv?
3. Hvilket nøkkelord brukes for å overbelaste en metode?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.76
OOP-prinsipper: Polymorfisme
Sveip for å vise menyen
Polymorfisme
Polymorfisme er et annet prinsipp innen OOP. Du har allerede støtt på polymorfisme når du overlastet og overstyrte metoder. Generelt er dette essensen av polymorfisme. Men definisjonen av polymorfisme kan virke litt skremmende:
Men i virkeligheten er det mye enklere enn det ser ut. Polymorfisme kan, enkelt forklart, deles inn i 2 deler:
- Metodeoverlasting: det du lærte i dette kapittelet, men la oss repetere.
La oss se på et eksempel: vi må skrive en metode som tar en int
-parameter og returnerer en String
, samt en metode som gjør det samme, men med en long
-parameter. La oss se på kodeeksempelet:
Main.java
1234567public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Som du kan se ovenfor, har vi opprettet to metoder med samme navn, men som kan utføre ulike oppgaver. Dette kalles metodeoverlasting.
- Metodeoverstyring:
Du har støtt på dette emnet tidligere da du overstyrte
toString
-metoden i denne delen. Men la oss gå gjennom det én gang til.
La oss se på et kodeeksempel som viser hvordan vi kan overstyre en metode. Vi har en klasse kalt Airplane
som arver fra Transport
-klassen. I Transport
-klassen finnes det en metode som heter move
, som returnerer "This transport has started moving".
Vi ønsker at flyet skal "starte å fly" i stedet for "å bevege seg". For å oppnå dette vil vi overstyre move
-metoden i barneklassen:
Transport.java
Airplane.java
1234567public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Som du kan se, har vi overstyrt metoden fra superklassen i subklassen som nødvendig.
På denne måten utfyller polymorfisme arv svært godt. Gjennom polymorfisme kan vi enkelt og optimalt utvide koden vår, noe som gjør den fleksibel.
1. Hvorfor trenger vi polymorfisme i Java?
2. Hvordan utfyller polymorfisme arv?
3. Hvilket nøkkelord brukes for å overbelaste en metode?
Takk for tilbakemeldingene dine!