開始使用免費開始

覆寫烹調功能

子類別也可以透過覆寫方法來擴充功能。做法是定義與父類別同名的方法。

子類別可以在方法名稱前加上 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
___
編輯並執行程式碼