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
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 Argumenttime_secondsannehmen. - Sie soll das Argument
time_secondsan diecook()-Methode der Elternklasse übergeben, … - und anschließend eine zusätzliche
message()(Dokumentation) mit dem Text"Enjoy your dinner!"anzeigen.
- Die
- Erzeuge ein Objekt des fancy Mikrowellenherds und weise es
a_fancy_microwavezu. - 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
___