开始使用免费开始使用

再度重写烹饪功能

一旦中间类通过启用的 super_ 主动绑定暴露了其父类功能,您就可以跨越多代 R6 类访问方法。语法如下:

parent_method <- super$method()
grand_parent_method <- super$super_$method()
great_grand_parent_method <- super$super_$super_$method()

本练习是课程的一部分

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

查看课程

练习说明

微波炉类和高级微波炉类已在您的工作空间中预定义。字符串 ascii_pizza_slice 也已预定义。

  • 通过打印名称来探索其他微波炉工厂。
  • 使用 R6Class()文档)定义一个 HighEndMicrowaveOven 类生成器,并将其赋值给 high_end_microwave_oven_factory
    • 它应当继承自 FancyMicrowaveOven
    • 它应当包含一个 public 列表元素。
  • 重写公共的 cook() 方法。
    • 该方法只接受一个名为 time_seconds 的参数。
    • 它应当调用 MicrowaveOvencook() 方法,……
    • 然后使用 message(ascii_pizza_slice)文档)显示一片披萨。
  • 实例化一个高端微波炉对象,并将其赋值给 a_high_end_microwave
  • 调用 a_high_end_microwavecook() 方法,烹饪 1 秒。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
编辑并运行代码