1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

연습 문제

요리 기능을 다시 또 오버라이드하기

중간 클래스가 super_ 활성 바인딩으로 부모의 기능을 노출하면, 여러 세대에 걸친 R6 클래스의 메서드에 접근할 수 있습니다. 문법은 다음과 같습니다.

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

지침

100 XP

전자레인지와 고급 전자레인지 클래스가 작업 공간에 미리 정의되어 있습니다. 문자열 ascii_pizza_slice도 미리 정의되어 있어요.

  • 다른 전자레인지 팩토리를 살펴보면서 이름을 출력해 보세요.
  • R6Class()(docs)를 사용해 HighEndMicrowaveOven 클래스 제너레이터를 정의하고, 이를 high_end_microwave_oven_factory에 할당하세요.
    • FancyMicrowaveOven을 상속해야 합니다.
    • public 리스트 요소를 가져야 합니다.
  • public cook() 메서드를 오버라이드하세요.
    • 이 메서드는 time_seconds라는 단일 인수를 받아야 합니다.
    • MicrowaveOven의 cook() 메서드를 호출한 다음,
    • message(ascii_pizza_slice)(docs)를 사용해 피자 조각을 표시하세요.
  • 하이엔드 전자레인지 객체를 인스턴스화하여 a_high_end_microwave에 할당하세요.
  • a_high_end_microwave의 cook() 메서드를 호출해 1초 동안 조리하세요.