Ga naar de inhoud
Informatica · Klas 5 VWO

Ideeën voor actief leren

Methodeoverschrijving (Method Overriding)

Actief leren werkt bij methodeoverschrijving omdat leerlingen door directe code-interactie het verschil tussen overerving en specialisatie zelf ervaren. Het zichtbaar maken van gedragsveranderingen in subklassen helpt hen het concept van polymorfisme te verankeren in plaats van alleen theorie te bestuderen.

SLO Kerndoelen en EindtermenSLO: Onderbouw - ProgrammerenSLO: Onderbouw - Creativiteit
20–45 minDuo's → Hele klas4 activiteiten

Activiteit 01

Ervaringsgericht leren30 min · Duo's

Pair Programming: Basis Overriding

Laat paren een superklasse Vehicle maken met een move()-methode. Creëer subklassen Car en Bike die move() overschrijven en super.move() aanroepen. Test door instanties te maken en polymorf te gebruiken. Bespreek verschillen na 20 minuten.

Verklaar het verschil tussen method overriding en method overloading.

FacilitatietipGeef bij Pair Programming een duidelijke structuur met een basisvoorbeeld en een stap-voor-stap opdracht, zodat leerlingen gefocust blijven op het kernverschil tussen overriding en overloading.

Waar je op moet lettenGeef leerlingen twee codefragmenten: één die method overriding demonstreert en één die method overloading demonstreert. Vraag hen om voor elk fragment te noteren of het overriding of overloading is, en waarom. Benoem ook de rol van 'super()' in het overriding-voorbeeld.

ToepassenAnalyserenEvaluerenZelfbewustzijnZelfmanagementSociaal Bewustzijn
Volledige les genereren

Activiteit 02

Ervaringsgericht leren45 min · Kleine groepjes

Small Groups: Game Enemies

Groepen bouwen een Enemy superklasse met attack(). Subklassen als Zombie en Robot overschrijven attack() met unieke logica via super(). Integreer in een eenvoudig Scratch-achtig spel en speeltest.

Implementeer method overriding in een subklasse en gebruik super() om de superklassemethode aan te roepen waar gepast.

FacilitatietipStart de Small Groups activiteit met een kort klassikaal voorbeeld van game-logica, zodat alle groepen vanuit hetzelfde vertrekpunt beginnen.

Waar je op moet lettenToon een klassendiagram met een superklasse 'Voertuig' en subklassen 'Auto' en 'Fiets'. Vraag leerlingen om een methode 'rijden()' te bedenken die in beide subklassen wordt overschreven om het specifieke gedrag van de auto en de fiets weer te geven. Laat ze kort uitleggen hoe ze 'super()' zouden gebruiken indien nodig.

ToepassenAnalyserenEvaluerenZelfbewustzijnZelfmanagementSociaal Bewustzijn
Volledige les genereren

Activiteit 03

Ervaringsgericht leren25 min · Hele klas

Whole Class: Analyse Challenge

Presenteer code met en zonder overriding. Laat de klas stemmen en uitleggen waarom overriding voorkeur heeft. Pas aan met super() en deel screens.

Analyseer wanneer het overschrijven van een methode de voorkeur heeft boven het toevoegen van een nieuwe methode.

FacilitatietipLaat tijdens de Analyse Challenge leerlingen eerst individueel nadenken voordat ze in kleine groepen vergelijken, om diepere discussie te stimuleren.

Waar je op moet lettenLaat leerlingen in tweetallen een Scratch-project maken met een 'Dier'-sprite en subklassen zoals 'Hond' en 'Kat'. Ze moeten een methode 'geluidMaken()' overschrijven. Na voltooiing beoordelen ze elkaars implementatie: is de methode overschreven? Wordt 'super()' correct gebruikt? Is het gedrag van de subklassen duidelijk verschillend?

ToepassenAnalyserenEvaluerenZelfbewustzijnZelfmanagementSociaal Bewustzijn
Volledige les genereren

Activiteit 04

Ervaringsgericht leren20 min · Individueel

Individual: Debug Exercise

Geef code met overriding-fouten. Leerlingen identificeren problemen, fixen met super() en testen output. Deel één inzicht met de klas.

Verklaar het verschil tussen method overriding en method overloading.

FacilitatietipGeef bij de Individual Debug Exercise een heldere foutmeldinganalyse-checklist, zodat leerlingen niet vastlopen op syntax maar op logica.

Waar je op moet lettenGeef leerlingen twee codefragmenten: één die method overriding demonstreert en één die method overloading demonstreert. Vraag hen om voor elk fragment te noteren of het overriding of overloading is, en waarom. Benoem ook de rol van 'super()' in het overriding-voorbeeld.

ToepassenAnalyserenEvaluerenZelfbewustzijnZelfmanagementSociaal Bewustzijn
Volledige les genereren

Enkele opmerkingen over deze eenheid onderwijzen

Ervaren docenten benadrukken dat methodeoverschrijving het beste wordt geleerd door code te manipuleren in plaats van alleen voorbeelden te bestuderen. Ze vermijden abstracte uitleg over polymorfisme tot leerlingen het zelf hebben ervaren, en gebruiken game-ontwerp als context omdat het tastbare resultaten oplevert. Belangrijk is om leerlingen te laten zien dat overriding niet gaat om 'meer code schrijven', maar om bestaande functionaliteit aan te passen voor gespecialiseerd gedrag.

Succesvolle leerlingen tonen aan dat ze overriding kunnen toepassen zonder de methode-signatuur te wijzigen, herkennen wanneer super() nodig is en kunnen uitleggen waarom overriding soms beter is dan een nieuwe methode. Ze leggen verbanden tussen klassendiagrammen en werkende code.


Pas op voor deze misvattingen

  • Tijdens de Pair Programming activiteit letten leerlingen vaak niet op de parameterlijsten.

    Geef in de opdracht expliciet aan dat ze moeten controleren dat de methode-signatuur in de subklasse exact hetzelfde is als in de superklasse, inclusief parameter types en volgorde.

  • Tijdens de Small Groups activiteit vergeten leerlingen super() te gebruiken bij overriding.

    Geef elk groepje een voorbeeld waar super() nodig is, zoals een Enemy-klasse die zowel een basis-aanval als een gespecialiseerde aanval moet uitvoeren.

  • Tijdens de Analyse Challenge denken leerlingen dat overriding altijd de beste keuze is.

    Stuur leerlingen naar de game-ontwerpcontext: vraag hen om voorbeelden te bedenken waar een nieuwe methode beter zou werken, zoals een unieke vaardigheid die niet gerelateerd is aan de superklasse.


Methodes gebruikt in dit overzicht