Redéfinir les capacités de cuisson
Les classes enfants peuvent aussi étendre les fonctionnalités en redéfinissant des méthodes. Elles le font en définissant des méthodes portant le même nom que celles du parent.
Les classes enfants peuvent accéder aux méthodes publiques de leur classe parente en préfixant le nom par super$.
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
Un four à micro-ondes a été pré‑défini dans votre espace de travail.
- Mettez à jour la définition de la classe de micro-ondes « fancy » pour inclure un élément public.
- Redéfinissez la méthode
cook().- La méthode doit toujours accepter un argument
time_seconds. - Elle doit transmettre l’argument
time_secondsà la méthodecook()de la classe parente… - puis afficher un
message()(docs) supplémentaire indiquant"Enjoy your dinner!".
- La méthode doit toujours accepter un argument
- Instanciez un objet micro-ondes « fancy » et assignez-le à
a_fancy_microwave. - Appelez la méthode
cook()pendant une seconde.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
___