Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_seconds doorgeven aan de cook()-methode van de parentklasse, …
    • en daarna een extra message() (docs) tonen met "Enjoy your dinner!".
  • 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
___
Code bewerken en uitvoeren