Suprascrierea capabilităților de gătit
Clasele copil pot extinde funcționalitatea și prin suprascrierea metodelor. Acest lucru se realizează definind metode cu același nume ca cele din clasa părinte.
Clasele copil pot accesa metodele publice ale clasei părinte prefixând numele cu super$.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte cu S3 și R6 în R
Instrucțiuni pentru exercițiu
Un cuptor cu microunde a fost predefinit în spațiul tău de lucru.
- Actualizează definiția clasei cuptorului cu microunde de lux pentru a include un element public.
- Suprascrie metoda
cook().- Metoda
cook()trebuie să primească în continuare un argumenttime_seconds. - Trebuie să transmită argumentul
time_secondsmetodeicook()din clasa părinte, … - apoi să afișeze un
message()suplimentar (docs) cu textul"Enjoy your dinner!".
- Metoda
- Instanțiază un obiect de tip cuptor cu microunde de lux și atribuie-l variabilei
a_fancy_microwave. - Apelează metoda
cook()pentru o secundă.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
___