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
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
FancyMicrowaveOveni przypisz go do zmienneja_fancy_microwave. - Wywołaj metodę
cook_baked_potato()na obiekciea_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
___