Die Kochfunktionen erweitern
Die Kindklasse kann die Funktionalität der Elternklasse erweitern, indem sie weitere öffentliche Methoden hinzufügt, deren Namen sich von denen in der Elternklasse unterscheiden.
Öffentliche Methoden können andere öffentliche Methoden aufrufen, indem sie ihren Namen mit self$ voranstellen.
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung mit S3 und R6 in R
Anleitung zur Übung
In deinem Workspace wurde bereits eine Mikrowelle vordefiniert.
- Erweitere die Definition der fancy microwave oven-Klasse um ein
public-Element. - Füge eine öffentliche Methode
cook_baked_potato()hinzu.- Diese soll keine Argumente annehmen.
- Im Rumpf soll sie ihre eigene Methode
cook()für 3 Sekunden aufrufen.
- Erzeuge ein Objekt
FancyMicrowaveOvenund weise esa_fancy_microwavezu. - Rufe die Methode
cook_baked_potato()vona_fancy_microwaveauf.
Warnung: Versuche nicht, Ofenkartoffeln zu essen, nachdem sie nur 3 Sekunden gekocht wurden – sie schmecken schrecklich und du könntest eine Lebensmittelvergiftung bekommen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Explore microwave oven class
microwave_oven_factory
# Extend the class definition
fancy_microwave_oven_factory <- R6Class(
"FancyMicrowaveOven",
inherit = microwave_oven_factory,
# Add a public list with a cook baked potato method
___ = ___(
___ = ___
)
)
# Instantiate a fancy microwave
a_fancy_microwave <- ___
# Call the cook_baked_potato() method
___