CommencerCommencer gratuitement

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

Afficher le cours

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éthode cook() de la classe parente…
    • puis afficher un message() (docs) supplémentaire indiquant "Enjoy your dinner!".
  • 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
___
Modifier et exécuter le code