Kursusindhold
Java OOP
Java OOP
OOP-Principper: Polymorfi
Polymorfi
Polymorfi er et andet princip i OOP. Du har allerede stødt på polymorfi, når du overloadede og overrided metoder. Generelt er dette essensen af polymorfi. Men definitionen af polymorfi kan virke lidt skræmmende:
Men i virkeligheden er det meget enklere, end det ser ud til. Polymorfi kan, i enkle termer, opdeles i 2 dele:
Metodeoverbelastning: det, du lærte i dette kapitel, men lad os gennemgå det igen.
Lad os se på et eksempel: vi skal skrive en metode, der tager en int
-parameter og returnerer en String
, samt en metode, der gør det samme, men med en long
-parameter. Lad os se på kodeeksemplet:
Main.java
public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Som du kan se ovenfor, har vi oprettet 2 metoder med samme navn, men som kan udføre forskellige handlinger. Dette kaldes metodeoverbelastning.
Metodeoverskrivning: Du er tidligere stødt på dette emne, da du overskrev
toString
-metoden i dette kapitel. Men lad os gennemgå det igen.
Lad os se på et kodeeksempel, der viser, hvordan vi kan overskrive en metode. Vi har en klasse kaldet Airplane
, som arver fra Transport
-klassen. Og i Transport
-klassen er der en metode kaldet move
, som returnerer "This transport has started moving".
Vi har brug for, at flyet "begynder at flyve" i stedet for "at bevæge sig". For at opnå dette vil vi overskrive move
-metoden i underklassen:
Transport.java
Airplane.java
public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Som du kan se, har vi overskrevet metoden fra forældreklassen i barneklassen som krævet.
På denne måde supplerer polymorfi arv meget godt. Gennem polymorfi kan vi bekvemt og optimalt udvide vores kode, hvilket gør den fleksibel.
1. Hvorfor har vi brug for polymorfi i Java?
2. Hvordan supplerer polymorfi arv?
3. Hvilket nøgleord bruges til at overloade en metode?
Tak for dine kommentarer!