Sobes.tech
Junior — Middle

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:

  1. 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.

  2. Parametrisch polymorfisme (Parametric Polymorphism) — wordt gerealiseerd via generieke types, waarbij functies of klassen met elk datatype kunnen werken.

  3. Ad-hoc polymorfisme (Ad-hoc Polymorphism) — omvat overbelasting van functies en operators, waarbij één functie meerdere implementaties heeft met verschillende parameter types.

  4. 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
}