扩展烹饪功能
子类可以通过添加更多在父类中不存在名称的公共方法来扩展父类的功能。
公共方法可以通过在名称前加上 self$ 来调用其他公共方法。
本练习是课程的一部分
R 中的 S3 与 R6 面向对象编程
练习说明
您的工作空间中已预定义了一台微波炉。
- 扩展高级微波炉类的定义,加入一个
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
___