Přepsání schopností vaření
Podřízené třídy mohou rozšiřovat funkčnost také přepisováním metod. Stačí definovat metody se stejným názvem, jaký má metoda v nadřazené třídě.
Podřízené třídy mají přístup k veřejným metodám své nadřazené třídy pomocí prefixu super$.
Toto cvičení je součástí kurzu
Objektově orientované programování s S3 a R6 v R
Pokyny k cvičení
V tvém pracovním prostoru je předdefinovaná mikrovlnná trouba.
- Doplň definici třídy pro luxusní mikrovlnnou troubu o veřejný element.
- Přepiš metodu
cook().- Metoda cook by měla stále přijímat argument
time_seconds. - Měla by předat argument
time_secondsmetoděcook()nadřazené třídy, … - a pak zobrazit dodatečnou zprávu pomocí
message()(docs) s textem"Enjoy your dinner!".
- Metoda cook by měla stále přijímat argument
- Vytvoř instanci objektu luxusní mikrovlnné trouby a přiřaď ji do proměnné
a_fancy_microwave. - Zavolej metodu
cook()na jednu sekundu.
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 microwave oven class
microwave_oven_factory
# Update the class definition
fancy_microwave_oven_factory <- R6Class(
"FancyMicrowaveOven",
inherit = microwave_oven_factory,
# Add a public list with a cook method
___ = ___(
___ = ___
)
)
# Instantiate a fancy microwave
a_fancy_microwave <- ___
# Call the cook() method
___