Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära OOP-Principer: Polymorfism | Avsnitt
Java Objektorienterad Programmering Grundläggande

bookOOP-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

Main.java

copy
1234567
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å 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

Transport.java

Airplane.java

Airplane.java

copy
1234567
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 överlagra en metod?

question mark

Varför behöver vi polymorfism i Java?

Select the correct answer

question mark

Hur kompletterar polymorfism arv?

Select the correct answer

question mark

Vilket nyckelord används för att överlagra en metod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 18

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 18
some-alt