조리 기능 확장하기
자식 클래스는 부모 클래스에 없는 이름의 공개 메서드(public method)를 더해 부모의 기능을 확장할 수 있어요.
공개 메서드는 이름 앞에 self$를 붙여 다른 공개 메서드를 호출할 수 있어요.
이 연습은 강의의 일부입니다
R에서 S3와 R6로 배우는 Object-Oriented Programming
연습 안내
전자레인지가 작업 공간에 미리 정의되어 있어요.
- fancy 전자레인지 클래스 정의를 확장해
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
___