EmpezarEmpieza gratis

Sobrescribir por partida doble las capacidades de cocción

Una vez que las clases intermedias han expuesto la funcionalidad del padre con las active bindings super_, puedes acceder a métodos a través de varias generaciones de clases R6. La sintaxis es

parent_method <- super$method()
grand_parent_method <- super$super_$method()
great_grand_parent_method <- super$super_$super_$method()

Este ejercicio forma parte del curso

Programación orientada a objetos con S3 y R6 en R

Ver curso

Instrucciones del ejercicio

Las clases de horno microondas y de horno microondas "fancy" ya están predefinidas en tu espacio de trabajo. También se ha predefinido una cadena ascii_pizza_slice.

  • Explora las otras fábricas de hornos microondas imprimiendo sus nombres.
  • Define un generador de clase HighEndMicrowaveOven usando R6Class() (docs) y asígnalo a high_end_microwave_oven_factory.
    • Debe heredar de FancyMicrowaveOven.
    • Debe tener un elemento de lista public.
  • Sobrescribe el método público cook().
    • El método debe aceptar un único argumento llamado time_seconds.
    • Debe llamar al método cook() de MicrowaveOven, …
    • y después mostrar una porción de pizza usando message(ascii_pizza_slice) (docs).
  • Instancia un objeto de horno microondas de gama alta y asígnalo a a_high_end_microwave.
  • Llama al método cook() de a_high_end_microwave para cocinar durante un segundo.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
Editar y ejecutar código