開始使用免費開始

擴充烹調功能

子類別可以透過加入名稱不同於父類別的其他 public 方法,來擴充父類別的功能。

public 方法可以在名稱前加上 self$ 來呼叫其他 public 方法。

本練習屬於課程

在 R 中使用 S3 與 R6 的物件導向程式設計

檢視課程

練習說明

一個微波爐已預先定義在你的工作空間中。

  • 擴充進階微波爐類別的定義,加入 public 元素。
  • 新增一個 public 的 cook_baked_potato() 方法。
    • 這個方法不接受任何引數。
    • 在方法本體中,呼叫自己的 cook() 方法 3 秒。
  • 建立一個 FancyMicrowaveOven 物件並指派給 a_fancy_microwave
  • 呼叫 a_fancy_microwavecook_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
___
編輯並執行程式碼