Ampliare le capacità di cottura
La classe figlia può estendere la funzionalità della classe genitore aggiungendo ulteriori metodi pubblici con nomi diversi da quelli disponibili nella classe genitore.
I metodi pubblici possono chiamare altri metodi pubblici anteponendo al loro nome self$.
Questo esercizio fa parte del corso
Programmazione orientata agli oggetti con S3 e R6 in R
Istruzioni dell'esercizio
Un forno a microonde è stato predefinito nel tuo workspace.
- Estendi la definizione della classe del fornetto a microonde "fancy" per includere un elemento
public. - Aggiungi un metodo pubblico
cook_baked_potato().- Non deve accettare argomenti.
- Nel corpo, deve chiamare il proprio metodo
cook()per 3 secondi.
- Crea un oggetto
FancyMicrowaveOvene assegnalo aa_fancy_microwave. - Chiama il metodo
cook_baked_potato()dia_fancy_microwave.
Attenzione: non provare a mangiare patate al cartoccio dopo che sono state cotte per 3 secondi: avranno un sapore terribile e potresti rischiare un'intossicazione alimentare.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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
___