Polymorfisme
Verken geavanceerde OOP-concepten.
Polymorfisme is een gratis Python For Kids-les op CoddyKit. Dit is les 5 van 5. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python For Kids. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python For Kids bevat in totaal 5 lessen.
Polymorfisme
Welkom terug bij de les Objectgeoriënteerd programmeren (OOP)! Vandaag bekijken we polymorfisme in Python, een krachtig concept waarmee objecten meerdere vormen kunnen aannemen.

Wat is polymorfisme?
Polymorfisme is een fundamenteel concept in OOP waarmee objecten van verschillende klassen kunnen worden behandeld als objecten van een gemeenschappelijke superklasse. Hierdoor kan dezelfde methode zich anders gedragen, afhankelijk van het object dat de methode aanroept.
- Definitie: "Veel vormen" - het vermogen van verschillende objecten om uniek te reageren op dezelfde methodeaanroep.
- Doel: Vergroot de flexibiliteit en integratie van code doordat objecten onderling uitwisselbaar zijn.
Bekijk hoe polymorfisme werkt in Python!
Polymorfisme implementeren
Polymorfisme kan in Python worden bereikt door methoden te overschrijven en ingebouwde functies te gebruiken die met verschillende objecttypen werken.
- Methode overschrijven: Een methode in een subklasse opnieuw definiëren die al in de superklasse is gedefinieerd.
- Ingebouwde functies: Functies zoals
len()die met verschillende gegevenstypen werken.
Laten we het overschrijven van methoden in detail bekijken.
Methoden overschrijven
Door een methode te overschrijven kan een subklasse een specifieke implementatie bieden van een methode die al in de superklasse is gedefinieerd. Dit is een belangrijk aspect van polymorfisme.
Voorbeeld:
# Defines the Animal parent class with a speak method
class Animal:
def speak(self):
print("The animal makes a sound.") # Generic speak method
Subklassen maken met overschreven methoden
We maken subklassen die overerven van Animal en de methode speak overschrijven om specifiek gedrag te bieden.
Voorbeeld:
# Defines the Dog child class inheriting from Animal
class Dog(Animal):
def speak(self):
print("The dog barks.") # Overridden speak method
# Defines the Cat child class inheriting from Animal
class Cat(Animal):
def speak(self):
print("The cat meows.") # Overridden speak method
Polymorfisme gebruiken met overschreven methoden
Nu maken we objecten van de subklassen en bekijken we hoe ze verschillend gedrag vertonen met dezelfde methodenaam.
Voorbeeld:
# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()
# Calls the speak method on both objects
dog.speak() # Output: The dog barks.
cat.speak() # Output: The cat meows.
Polymorfisme met ingebouwde functies
Polymorfisme is niet beperkt tot zelf gedefinieerde klassen. De ingebouwde functies van Python, zoals len(), werken met verschillende gegevenstypen en laten polymorf gedrag zien.
Voorbeeld:
# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list)) # Output: 4
# Uses len() with a string
my_string = "Hello"
print(len(my_string)) # Output: 5
# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict)) # Output: 2
Voorbeeldprogramma: oppervlakken van vormen berekenen
We maken een programma dat met polymorfisme het oppervlak van verschillende vormen berekent. We definiëren een superklasse Shape en subklassen Circle en Rectangle die de methode area overschrijven.
Code:
# Defines the Shape parent class with an area method
class Shape:
def area(self):
pass # Placeholder method
# Defines the Circle child class inheriting from Shape
class Circle(Shape):
def __init__(self, radius):
self.radius = radius # Sets the radius of the circle
def area(self):
return 3.14 * self.radius ** 2 # Calculates area of the circle
# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width # Sets the width of the rectangle
self.height = height # Sets the height of the rectangle
def area(self):
return self.width * self.height # Calculates area of the rectangle
# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)
# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area()) # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area()) # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
def move(self):
print("The vehicle moves.")
# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
def move(self):
print("The bicycle pedals forward.")
# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
def move(self):
print("The airplane flies in the sky.")
# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()
# Calls the move method on both objects
bike.move()
plane.move()
Goed gedaan!
Je hebt geleerd wat polymorfisme in Python is en hoe objecten van verschillende klassen uniek kunnen reageren op dezelfde methodeaanroepen. Polymorfisme vergroot de flexibiliteit en schaalbaarheid van je code, waardoor deze gemakkelijker te beheren en uit te breiden is. Blijf oefenen door meer klassen en methoden te maken die polymorf gedrag gebruiken, zodat je inzicht verder groeit!

Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 94
Veelgestelde vragen
Is de les “Polymorfisme” gratis?
Ja — de volledige tekst van “Polymorfisme” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python For Kids wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python For Kids bevat in totaal 5 lessen.
Wat leer ik in “Polymorfisme”?
Verken geavanceerde OOP-concepten. Je oefent met Python For Kids door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Python For Kids te beginnen?
Ervaring vooraf is niet nodig. Python For Kids op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 5 van 5.
Hoe lang duurt de les “Polymorfisme”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Python For Kids?
Ja. Elke les over Python For Kids bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.