Överskugga tillagningsfunktionen
Barnklasser kan även utöka funktionaliteten genom att överskugga metoder. Det gör de genom att definiera metoder med samma namn som föräldraklassens.
Barnklasser kan komma åt publika metoder från sin föräldraklass genom att prefixera namnet med super$.
Den här övningen är en del av kursen
Objektorienterad programmering med S3 och R6 i R
Övningsinstruktioner
En mikrovågsugn har fördefinieras i din arbetsmiljö.
- Uppdatera definitionen av klassen för den avancerade mikrovågsugnen så att den inkluderar ett publikt element.
- Överskugga metoden
cook().- Cook-metoden ska fortfarande ta ett argument
time_seconds. - Den ska skicka argumentet
time_secondstill föräldraklassenscook()-metod, … - och sedan visa ett ytterligare
message()(docs) med texten"Enjoy your dinner!".
- Cook-metoden ska fortfarande ta ett argument
- Skapa ett objekt av klassen för den avancerade mikrovågsugnen och tilldela det till
a_fancy_microwave. - Anropa metoden
cook()med en sekund.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
___