覆寫烹調功能
子類別也可以透過覆寫方法來擴充功能。做法是定義與父類別同名的方法。
子類別可以在方法名稱前加上 super$,來存取父類別的公開方法。
本練習屬於課程
在 R 中使用 S3 與 R6 的物件導向程式設計
練習說明
你的工作空間中已經預先建立了一台微波爐。
- 更新進階微波爐類別的定義,加入一個 public 元素。
- 覆寫
cook()方法。cook方法仍需接受time_seconds參數。- 它應該把
time_seconds參數傳給父類別的cook()方法,… - 然後再額外顯示一個
message()(docs)訊息,內容為"Enjoy your dinner!"。
- 產生一個進階微波爐物件並指定給
a_fancy_microwave。 - 呼叫
cook()方法 1 秒。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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
___