Sobes.tech
Junior — Middle

Kun je een voorbeeld geven dat de verschillende soorten polymorfisme in objectgeoriënteerd programmeren illustreert?

sobes.tech AI

Antwoord van AI

In objectgeoriënteerd programmeren maakt polymorfisme het mogelijk dat objecten van verschillende klassen methoden met dezelfde naam verschillend afhandelen.

1. Compileertijd polymorfisme (statisch polymorfisme):

  • Method overloading: meerdere methoden met dezelfde naam, maar verschillende parameters.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Runtime polymorfisme (dynamisch polymorfisme):

  • Method overriding in subclasses.
class Animal {
    func sound() {
        print("Een geluid")
    }
}

class Dog: Animal {
    override func sound() {
        print("Blaffen")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miauw")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Drukt "Blaffen" en "Miauw" af
}

Zo maakt polymorfisme het mogelijk om een enkele interface te gebruiken voor het werken met verschillende objecttypes.