De kookmogelijkheden uitbreiden
De kindklasse kan de functionaliteit van de ouder uitbreiden door extra public-methoden toe te voegen met andere namen dan die in de ouderklasse beschikbaar zijn.
Public-methoden kunnen andere public-methoden aanroepen door hun naam te laten voorafgaan door self$.
Deze oefening maakt deel uit van de cursus
Objectgeoriënteerd programmeren met S3 en R6 in R
Oefeninstructies
Er is een magnetron vooraf gedefinieerd in je werkruimte.
- Breid de definitie van de fancy magnetronklasse uit met een
public-element. - Voeg een publieke methode
cook_baked_potato()toe.- Deze neemt geen argumenten.
- In de body roept hij zijn eigen
cook()-methode aan voor 3 seconden.
- Maak een
FancyMicrowaveOven-object en wijs het toe aana_fancy_microwave. - Roep de methode
cook_baked_potato()vana_fancy_microwaveaan.
Waarschuwing: Probeer geen gepofte aardappelen te eten nadat ze 3 seconden zijn gekookt; ze smaken dan vreselijk en je kunt er voedselvergiftiging van krijgen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Explore microwave oven class
microwave_oven_factory
# Extend the class definition
fancy_microwave_oven_factory <- R6Class(
"FancyMicrowaveOven",
inherit = microwave_oven_factory,
# Add a public list with a cook baked potato method
___ = ___(
___ = ___
)
)
# Instantiate a fancy microwave
a_fancy_microwave <- ___
# Call the cook_baked_potato() method
___