Nadpisywanie możliwości gotowania
Klasy potomne mogą rozszerzać funkcjonalność, nadpisując metody. Polega to na zdefiniowaniu metod o tej samej nazwie co metody klasy nadrzędnej.
Klasy potomne mogą uzyskiwać dostęp do publicznych metod klasy nadrzędnej, poprzedzając ich nazwę prefiksem super$.
To ćwiczenie jest częścią kursu
Programowanie obiektowe z S3 i R6 w R
Instrukcje do ćwiczenia
W twoim środowisku roboczym została z góry zdefiniowana kuchenka mikrofalowa.
- Zaktualizuj definicję klasy fancy microwave oven, dodając do niej element publiczny.
- Nadpisz metodę
cook().- Metoda
cookpowinna nadal przyjmować argumenttime_seconds. - Powinna przekazywać argument
time_secondsdo metodycook()klasy nadrzędnej, … - a następnie wyświetlać dodatkowy komunikat
message()(dokumentacja) o treści"Enjoy your dinner!".
- Metoda
- Utwórz instancję obiektu fancy microwave oven i przypisz ją do zmiennej
a_fancy_microwave. - Wywołaj metodę
cook()z argumentem jednej sekundy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
___