Cursusinhoud
Java OOP
Java OOP
OOP-Principes: Polymorfisme
Polymorfisme
Polymorfisme is een ander principe van OOP. Je bent al in aanraking gekomen met polymorfisme toen je methoden overloadde en override. In feite is dit de essentie van polymorfisme. Maar de definitie van polymorfisme kan wat intimiderend overkomen:
Maar in werkelijkheid is het veel eenvoudiger dan het lijkt. Polymorfisme kan, eenvoudig gezegd, worden onderverdeeld in 2 delen:
Methode-overloading: wat je hebt geleerd in dit hoofdstuk, maar laten we het herhalen.
Laten we naar een voorbeeld kijken: we moeten een methode schrijven die een int
-parameter accepteert en een String
retourneert, evenals een methode die hetzelfde doet maar met een long
-parameter. Bekijk de volgende codefragment:
Main.java
public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
Zoals je hierboven kunt zien, hebben we twee methoden met dezelfde naam aangemaakt die verschillende dingen kunnen doen. Dit wordt methode-overloading genoemd.
Methode-overriding: Je bent dit onderwerp eerder tegengekomen toen je de
toString
-methode hebt overschreven in dit hoofdstuk. Laten we het nog eens kort herhalen.
Laten we kijken naar een codevoorbeeld dat laat zien hoe we een methode kunnen overschrijven. We hebben een klasse genaamd Airplane
die overerft van de klasse Transport
. In de klasse Transport
is er een methode genaamd move
die "This transport has started moving" retourneert.
We willen dat het vliegtuig "start flying" in plaats van "moving". Om dit te bereiken, zullen we de move
-methode in de subklasse overschrijven:
Transport.java
Airplane.java
public class Transport { // some fields public String move() { return "This transport has started moving"; } }
Zoals je kunt zien, hebben we de methode van de bovenliggende klasse overschreven in de onderliggende klasse zoals vereist.
Op deze manier vult polymorfisme overerving zeer goed aan. Door polymorfisme kunnen we onze code eenvoudig en optimaal uitbreiden, waardoor deze flexibel wordt.
1. Waarom hebben we polymorfisme nodig in Java?
2. Hoe vult polymorfisme overerving aan?
3. Welk sleutelwoord wordt gebruikt om een methode te overladen?
Bedankt voor je feedback!