LoslegenKostenlos loslegen

Die Kochfunktionen überschreiben

Kindklassen können die Funktionalität auch erweitern, indem sie Methoden überschreiben. Dazu definieren sie Methoden mit dem gleichen Namen wie in der Elternklasse.

Kindklassen können auf öffentliche Methoden ihrer Elternklasse zugreifen, indem sie dem Namen super$ voranstellen.

Diese Übung ist Teil des Kurses

Objektorientierte Programmierung mit S3 und R6 in R

Kurs anzeigen

Anleitung zur Übung

Ein Mikrowellenherd wurde bereits in deinem Workspace vordefiniert.

  • Aktualisiere die Definition der Klasse des fancy Mikrowellenherds, sodass sie ein öffentliches Element enthält.
  • Überschreibe die cook()-Methode.
    • Die cook-Methode soll weiterhin ein Argument time_seconds annehmen.
    • Sie soll das Argument time_seconds an die cook()-Methode der Elternklasse übergeben, …
    • und anschließend eine zusätzliche message() (Dokumentation) mit dem Text "Enjoy your dinner!" anzeigen.
  • Erzeuge ein Objekt des fancy Mikrowellenherds und weise es a_fancy_microwave zu.
  • Rufe die cook()-Methode für eine Sekunde auf.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen