1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Lập trình hướng đối tượng với S3 và R6 trong R

Connected

Bài tập

Ghi đè nhiều lớp với khả năng nấu nướng

Khi các lớp trung gian đã lộ ra chức năng của lớp cha bằng các active binding super_, bạn có thể truy cập các phương thức xuyên qua nhiều thế hệ lớp R6. Cú pháp là

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

Hướng dẫn

100 XP

Các lớp lò vi sóng và lò vi sóng cao cấp đã được định nghĩa sẵn trong không gian làm việc của bạn. Chuỗi ascii_pizza_slice cũng đã được định nghĩa sẵn.

  • Khám phá các factory lò vi sóng khác bằng cách in tên của chúng.
  • Định nghĩa bộ tạo lớp HighEndMicrowaveOven bằng R6Class() (docs), và gán nó cho high_end_microwave_oven_factory.
    • Lớp này nên kế thừa từ FancyMicrowaveOven.
    • Lớp này nên có một phần tử danh sách public.
  • Ghi đè phương thức cook() trong public.
    • Phương thức nhận một đối số duy nhất tên là time_seconds.
    • Phương thức nên gọi cook() của MicrowaveOven, …
    • rồi hiển thị một lát pizza bằng message(ascii_pizza_slice) (docs).
  • Khởi tạo một đối tượng lò vi sóng cao cấp và gán cho a_high_end_microwave.
  • Gọi phương thức cook() của a_high_end_microwave để nấu trong một giây.