擴充烹調功能
子類別可以透過加入名稱不同於父類別的其他 public 方法,來擴充父類別的功能。
public 方法可以在名稱前加上 self$ 來呼叫其他 public 方法。
本練習屬於課程
在 R 中使用 S3 與 R6 的物件導向程式設計
練習說明
一個微波爐已預先定義在你的工作空間中。
- 擴充進階微波爐類別的定義,加入
public元素。 - 新增一個 public 的
cook_baked_potato()方法。- 這個方法不接受任何引數。
- 在方法本體中,呼叫自己的
cook()方法 3 秒。
- 建立一個
FancyMicrowaveOven物件並指派給a_fancy_microwave。 - 呼叫
a_fancy_microwave的cook_baked_potato()方法。
警告:請不要在只加熱 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
___