Rozšíření možností vaření
Potomek může rozšířit funkčnost rodiče přidáním dalších veřejných metod s názvy, které se liší od těch dostupných v rodičovské třídě.
Verejné metody mohou volat jiné veřejné metody tak, že před jejich název přidáš self$.
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ředem definovaná mikrovlnná trouba.
- Rozšiř definici třídy fancy mikrovlnné trouby o element
public. - Přidej veřejnou metodu
cook_baked_potato().- Metoda by neměla přijímat žádné argumenty.
- V těle metody by měla volat vlastní metodu
cook()po dobu 3 sekund.
- Vytvoř objekt
FancyMicrowaveOvena přiřaď ho do proměnnéa_fancy_microwave. - Zavolej metodu
cook_baked_potato()objektua_fancy_microwave.
Upozornění: Nepokušej se jíst pečené brambory uvařené za 3 sekundy — budou chutnat hrozně a hrozí otrava jídlem.
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
# 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
___