Розширення можливостей приготування
Клас-нащадок може розширювати функціональність батьківського класу, додаючи нові публічні методи з назвами, відмінними від тих, що є в батьківському класі.
Публічні методи можуть викликати інші публічні методи, додаючи префікс 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
___