开始使用免费开始使用

重写烹饪功能

子类也可以通过重写方法来扩展功能。做法是在子类中定义与父类同名的方法。

子类可以通过在方法名前加上 super$ 来访问父类的公共方法。

本练习是课程的一部分

R 中的 S3 与 R6 面向对象编程

查看课程

练习说明

您的工作空间中已预定义一个微波炉对象。

  • 更新高级微波炉类的定义,加入一个 public 元素。
  • 重写 cook() 方法。
    • cook 方法仍需接收 time_seconds 参数。
    • 它应将 time_seconds 参数传递给父类的 cook() 方法,……
    • 然后再显示一个额外的 message()文档),内容为 "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
___
编辑并运行代码