De kookfunctionaliteit overschrijven
Kindklassen kunnen functionaliteit uitbreiden door methoden te overschrijven. Ze doen dit door methoden te definiëren met dezelfde naam als die van de parent.
Kindklassen kunnen openbare methoden uit hun parentklasse aanroepen door de naam te laten voorafgaan door super$.
Deze oefening maakt deel uit van de cursus
Objectgeoriënteerd programmeren met S3 en R6 in R
Oefeninstructies
Er is alvast een magnetron in je werkruimte gedefinieerd.
- Werk de definitie van de klasse voor de fancy magnetron bij zodat er een public element in staat.
- Overschrijf de
cook()-methode.- De cook-methode moet nog steeds een
time_seconds-argument aannemen. - Hij moet het argument
time_secondsdoorgeven aan decook()-methode van de parentklasse, … - en daarna een extra
message()(docs) tonen met"Enjoy your dinner!".
- De cook-methode moet nog steeds een
- Maak een object van de fancy magnetron en ken dit toe aan
a_fancy_microwave. - Roep de
cook()-methode aan voor één seconde.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Explore microwave oven class
microwave_oven_factory
# Update the class definition
fancy_microwave_oven_factory <- R6Class(
"FancyMicrowaveOven",
inherit = microwave_oven_factory,
# Add a public list with a cook method
___ = ___(
___ = ___
)
)
# Instantiate a fancy microwave
a_fancy_microwave <- ___
# Call the cook() method
___