Kursinnhold
Java OOP
Java OOP
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
public 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
public 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!