Kursinnehåll
Java OOP
Java OOP
OOP-principer: Polymorfism
Polymorfism
Polymorfism är en annan princip inom OOP. Du har redan stött på polymorfism när du överladdade och överskuggade metoder. I grunden är detta kärnan i polymorfism. Men definitionen av polymorfism kan verka lite skrämmande:
Men i verkligheten är det mycket enklare än det verkar. Polymorfism kan, enkelt uttryckt, delas upp i 2 delar:
Metodöverladdning: det du lärde dig i detta kapitel, men låt oss repetera.
Låt oss titta på ett exempel: vi behöver skriva en metod som tar en int
-parameter och returnerar en String
, samt en metod som gör samma sak men med en long
-parameter. Låt oss titta på kodexemplet:
Main.java
public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Som du kan se ovan har vi skapat två metoder med samma namn men som kan utföra olika saker. Detta kallas metodöverladdning.
Metodöverskuggning: Du har stött på detta ämne tidigare när du överskuggade metoden
toString
i detta kapitel. Men låt oss gå igenom det en gång till.
Låt oss titta på en kodsnutt som visar hur vi kan överskugga en metod. Vi har en klass som heter Airplane
som ärver från klassen Transport
. Och i Transport
-klassen finns en metod som heter move
som returnerar "This transport has started moving".
Vi behöver att flygplanet ska "start flying" istället för att "moving". För att uppnå detta kommer vi att överskugga metoden move
i subklassen:
Transport.java
Airplane.java
public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Som du kan se har vi överskuggat metoden från basklassen i subklassen enligt kraven.
På detta sätt kompletterar polymorfism arv mycket väl. Genom polymorfism kan vi bekvämt och optimalt utöka vår kod, vilket gör den flexibel.
1. Varför behöver vi polymorfism i Java?
2. Hur kompletterar polymorfism arv?
3. Vilket nyckelord används för att överlasta en metod?
Tack för dina kommentarer!