Kom igångKom igång gratis

Överskugga tillagningsfunktionen

Barnklasser kan även utöka funktionaliteten genom att överskugga metoder. Det gör de genom att definiera metoder med samma namn som föräldraklassens.

Barnklasser kan komma åt publika metoder från sin föräldraklass genom att prefixera namnet med super$.

Den här övningen är en del av kursen

Objektorienterad programmering med S3 och R6 i R

Visa kurs

Övningsinstruktioner

En mikrovågsugn har fördefinieras i din arbetsmiljö.

  • Uppdatera definitionen av klassen för den avancerade mikrovågsugnen så att den inkluderar ett publikt element.
  • Överskugga metoden cook().
    • Cook-metoden ska fortfarande ta ett argument time_seconds.
    • Den ska skicka argumentet time_seconds till föräldraklassens cook()-metod, …
    • och sedan visa ett ytterligare message() (docs) med texten "Enjoy your dinner!".
  • Skapa ett objekt av klassen för den avancerade mikrovågsugnen och tilldela det till a_fancy_microwave.
  • Anropa metoden cook() med en sekund.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
___
Redigera och kör kod