LoslegenKostenlos loslegen

Die Kochfähigkeiten noch einmal überschreiben

Sobald Zwischenklassen die Funktionalität ihrer Eltern mit aktiven Bindings über super_ verfügbar machen, kannst du auf Methoden über mehrere Generationen von R6-Klassen hinweg zugreifen. Die Syntax ist

parent_method <- super$method()
grand_parent_method <- super$super_$method()
great_grand_parent_method <- super$super_$super_$method()

Diese Übung ist Teil des Kurses

Objektorientierte Programmierung mit S3 und R6 in R

Kurs anzeigen

Anleitung zur Übung

Klassen für Mikrowellenofen und fancy Mikrowellenofen wurden in deinem Workspace bereits vordefiniert. Ein String ascii_pizza_slice ist ebenfalls vordefiniert.

  • Erkunde die anderen Mikrowellenofen-Factories, indem du ihre Namen ausgibst.
  • Definiere einen Klassengenerator HighEndMicrowaveOven mit R6Class() (docs) und weise ihn high_end_microwave_oven_factory zu.
    • Er soll von FancyMicrowaveOven erben.
    • Er soll ein public-Listenelement haben.
  • Überschreibe die öffentliche Methode cook().
    • Die Methode soll ein einzelnes Argument namens time_seconds haben.
    • Sie soll die cook()-Methode der MicrowaveOven aufrufen, …
    • und anschließend ein Pizzastück mit message(ascii_pizza_slice) anzeigen (docs).
  • Erzeuge ein High-End-Mikrowellenofen-Objekt und weise es a_high_end_microwave zu.
  • Rufe die Methode cook() von a_high_end_microwave auf, um eine Sekunde zu kochen.

Interaktive Übung

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

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
Code bearbeiten und ausführen