Zacznij terazZacznij za darmo

Rozszerzanie możliwości gotowania

Klasa potomna może rozszerzyć funkcjonalność klasy nadrzędnej, dodając nowe metody publiczne o nazwach innych niż te dostępne w klasie nadrzędnej.

Metody publiczne mogą wywoływać inne metody publiczne, poprzedzając ich nazwę prefiksem self$.

To ćwiczenie jest częścią kursu

Programowanie obiektowe z S3 i R6 w R

Zobacz kurs

Instrukcje do ćwiczenia

W twoim środowisku pracy jest już zdefiniowana kuchenka mikrofalowa.

  • Rozszerz definicję klasy fancy microwave oven, dodając element public.
  • Dodaj publiczną metodę cook_baked_potato().
    • Nie powinna przyjmować żadnych argumentów.
    • W jej ciele wywołaj metodę cook() na 3 sekundy.
  • Utwórz obiekt FancyMicrowaveOven i przypisz go do zmiennej a_fancy_microwave.
  • Wywołaj metodę cook_baked_potato() na obiekcie a_fancy_microwave.

Uwaga: nie próbuj jeść ziemniaków pieczonych po 3 sekundach gotowania – będą niesmaczne i mogą spowodować zatrucie pokarmowe.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
___
Edytuj i uruchom kod