Kun je de verschillende typen polymorfisme in objectgeoriënteerd programmeren opsommen?
sobes.tech AI
Antwoord van AI
In objectgeoriënteerd programmeren (OOP) worden verschillende hoofdtypen polymorfisme onderscheiden:
-
Subtypenpolymorfisme (Subtype Polymorphism) — het meest voorkomende type, geïmplementeerd via overerving en method overschrijving. Hiermee kunnen objecten van subklassen in plaats van objecten van de basisklasse worden gebruikt.
-
Parametrisch polymorfisme (Parametric Polymorphism) — wordt gerealiseerd via generieke types, waarbij functies of klassen met elk datatype kunnen werken.
-
Ad-hoc polymorfisme (Ad-hoc Polymorphism) — omvat overbelasting van functies en operators, waarbij één functie meerdere implementaties heeft met verschillende parameter types.
-
Runtime polymorfisme (Runtime Polymorphism) — wordt bereikt door virtuele methoden en dynamische binding, waarbij de methode-aanroep tijdens runtime wordt bepaald.
Voorbeeld van subtype polymorfisme in Swift (iOS):
class Animal {
func sound() {
print("Een geluid")
}
}
class Dog: Animal {
override func sound() {
print("Blaf")
}
}
class Cat: Animal {
override func sound() {
print("Miauw")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // De methode-aanroep hangt af van het werkelijke type van het object
}