ПочатиПочніть безкоштовно

Розширення можливостей приготування

Клас-нащадок може розширювати функціональність батьківського класу, додаючи нові публічні методи з назвами, відмінними від тих, що є в батьківському класі.

Публічні методи можуть викликати інші публічні методи, додаючи префікс self$ до їхньої назви.

Ця вправа є частиною курсу

Об'єктно-орієнтоване програмування з S3 та R6 в R

Переглянути курс

Інструкції до вправи

У вашому робочому середовищі вже визначено мікрохвильову піч.

  • Розширте визначення класу «крутої» мікрохвильової печі, додавши елемент public.
  • Додайте публічний метод cook_baked_potato().
    • Він не має приймати жодних аргументів.
    • У тілі методу викличте власний метод cook() на 3 секунди.
  • Створіть об'єкт FancyMicrowaveOven і присвойте його змінній a_fancy_microwave.
  • Викличте метод cook_baked_potato() об'єкта a_fancy_microwave.

Попередження: Не намагайтетеся їсти запечену картоплю після приготування протягом 3 секунд — вона буде жахливою на смак і ви можете отримати харчове отруєння.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Explore microwave oven class
microwave_oven_factory

# Extend the class definition
fancy_microwave_oven_factory <- R6Class(
  "FancyMicrowaveOven",
  inherit = microwave_oven_factory,
  # Add a public list with a cook baked potato method
  ___ = ___(
    ___ = ___
    
    
  )
)

# Instantiate a fancy microwave
a_fancy_microwave <- ___

# Call the cook_baked_potato() method
___
Редагувати та запускати код