요리 기능 재정의하기
자식 클래스는 메서드를 재정의하여 기능을 확장할 수도 있어요. 부모와 같은 이름의 메서드를 다시 정의하면 됩니다.
자식 클래스는 super$를 접두사로 붙여 부모 클래스의 public 메서드에 접근할 수 있어요.
이 연습은 강의의 일부입니다
R에서 S3와 R6로 배우는 Object-Oriented Programming
연습 안내
전자레인지 객체가 작업 공간에 미리 정의되어 있어요.
- 고급 전자레인지 클래스 정의를 업데이트하여 public 요소를 포함하세요.
cook()메서드를 재정의하세요.cook메서드는 여전히time_seconds인수를 받아야 해요.- 부모 클래스의
cook()메서드에time_seconds인수를 전달하고… - 이어서
"Enjoy your dinner!"라는 내용을 알리는 추가message()(docs)를 표시하세요.
- 고급 전자레인지 객체를 인스턴스화하여
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
___