OOP-Principer: Polymorfism
Svep för att visa menyn
Polymorfism
Polymorfism är ytterligare en princip inom OOP. Du har redan stött på polymorfism när du överlagrade och överskuggade metoder. I grunden är detta kärnan i polymorfism. Men definitionen av polymorfism kan verka något avskräckande:
Men i verkligheten är det mycket enklare än det verkar. Polymorfism kan, enkelt uttryckt, delas upp i 2 delar:
- Metodöverlagring: 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
1234567public 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
toStringi detta kapitel. Men låt oss gå igenom det en gång till.
Låt oss titta på ett kodexempel som visar hur vi kan överskugga en metod. Vi har en klass som heter Airplane som ärver från klassen Transport. Och i klassen Transport finns en metod som heter move som returnerar "This transport has started moving".
Vi behöver att flygplanet ska "starta att flyga" istället för att "röra sig". För att uppnå detta kommer vi att överskugga metoden move i barnklassen:
Transport.java
Airplane.java
1234567public 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 överlagra en metod?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal