Redéfinir les capacités de cuisson
Les classes enfants peuvent aussi étendre les fonctionnalités en redéfinissant des méthodes. Pour ce faire, elles définissent des méthodes ayant 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$.
Cette activité fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions de l’exercice
Un four à micro-ondes a été prédefini dans votre espace de travail.
- Mettez à jour la définition de la classe du four à micro-ondes sophistiqué pour inclure un élément public.
- Redéfinissez la méthode
cook().- La méthode
cookdoit toujours prendre un argumenttime_seconds. - Elle doit transmettre l'argument
time_secondsà la méthodecook()de la classe parente, … - puis afficher un
message()(docs) indiquant"Enjoy your dinner!".
- La méthode
- Instanciez un objet de four à micro-ondes sophistiqué et assignez-le à
a_fancy_microwave. - Appelez la méthode
cook()pour une seconde.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
___