OOP-prinsipper: Polymorfisme
Polymorfisme
Polymorfisme er et annet prinsipp i 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 sagt, deles inn i 2 deler:
- Metodeoverlasting: det du lærte i dette kapittelet, men la oss ta en gjennomgang.
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. 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 forskjellige oppgaver. Dette kalles metodeoverlasting.
- Metodeoverstyring:
Du har tidligere vært borti dette emnet da du overstyrte
toString-metoden i dette kapittelet. 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 "start flying" i stedet for "moving". 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 i 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 sagt, deles inn i 2 deler:
- Metodeoverlasting: det du lærte i dette kapittelet, men la oss ta en gjennomgang.
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. 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 forskjellige oppgaver. Dette kalles metodeoverlasting.
- Metodeoverstyring:
Du har tidligere vært borti dette emnet da du overstyrte
toString-metoden i dette kapittelet. 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 "start flying" i stedet for "moving". 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!