Перевизначення можливостей приготування
Класи-нащадки також можуть розширювати функціональність, перевизначаючи методи. Для цього вони оголошують методи з тими самими іменами, що й у батьківського класу.
Класи-нащадки можуть звертатися до публічних методів батьківського класу, додаючи префікс super$ до імені.
Ця вправа є частиною курсу
Об'єктно-орієнтоване програмування з S3 та R6 в R
Інструкції до вправи
Мікрохвильову піч уже визначено у вашому робочому середовищі.
- Оновіть визначення класу «вишукана мікрохвильова піч», щоб додати публічний елемент.
- Перевизначте метод
cook().- Метод
cookі далі має приймати аргументtime_seconds. - Він має передавати аргумент
time_secondsдо методуcook()батьківського класу, … - а потім показати додатковий виклик
message()(docs) з текстом"Enjoy your dinner!".
- Метод
- Створіть об'єкт вишуканої мікрохвильової печі та присвойте його змінній
a_fancy_microwave. - Викличте метод
cook()на одну секунду.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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
___