Začněte nyníZačněte zdarma

Přepisování přepsaných schopností vaření

Jakmile mezilehlé třídy zpřístupní funkcionalitu svého rodiče pomocí aktivních vazeb super_, lze přistupovat k metodám napříč několika generacemi R6 tříd. Syntaxe vypadá takto:

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

Toto cvičení je součástí kurzu

Objektově orientované programování s S3 a R6 v R

Zobrazit kurz

Pokyny k cvičení

V pracovním prostředí máš předem definované třídy mikrovlnné trouby a fancy mikrovlnné trouby. Předem je definován také řetězec ascii_pizza_slice.

  • Prozkoumej ostatní továrny na mikrovlnné trouby tím, že vypíšeš jejich názvy.
  • Definuj generátor třídy HighEndMicrowaveOven pomocí R6Class() (docs) a přiřaď ho do high_end_microwave_oven_factory.
    • Třída by měla dědit od FancyMicrowaveOven.
    • Měla by obsahovat prvek seznamu public.
  • Přepiš veřejnou metodu cook().
    • Metoda by měla přijímat jeden argument s názvem time_seconds.
    • Měla by zavolat metodu cook() třídy MicrowaveOven, …
    • a poté zobrazit pizza slice pomocí message(ascii_pizza_slice) (docs).
  • Vytvoř instanci high-end mikrovlnné trouby a přiřaď ji do a_high_end_microwave.
  • Zavolej metodu cook() objektu a_high_end_microwave pro vaření po dobu jedné sekundy.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
___
Upravit a spustit kód