BaşlayınÜcretsiz başlayın

Pişirme Yeteneklerini Bir Kez Daha Ezmek (Over-Overriding)

Ara sınıflar, ebeveyn işlevselliğini super_ etkin bağlamalarıyla açığa çıkardığında, birden çok nesil R6 sınıfı boyunca yöntemlere erişebilirsin. Sözdizimi şöyle:

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

Bu egzersiz, kursun bir parçasıdır

R'de S3 ve R6 ile Nesne Yönelimli Programlama

Kursa Göz Atın

Egzersiz talimatları

Mikrodalga fırın ve şatafatlı mikrodalga fırın sınıfları çalışma alanında senin için önceden tanımlandı. Ayrıca bir karakter dizisi ascii_pizza_slice da hazır.

  • Diğer mikrodalga fırın fabrikalarını adlarını yazdırarak keşfet.
  • R6Class() (docs) kullanarak bir HighEndMicrowaveOven sınıf üreticisi tanımla ve high_end_microwave_oven_factory değişkenine ata.
    • FancyMicrowaveOven’dan kalıtım almalı.
    • Bir public liste elemanı olmalı.
  • Genel cook() metodunu geçersiz kıl.
    • Metot, time_seconds adında tek bir argüman almalı.
    • Önce MicrowaveOven’ın cook() metodunu çağırmalı, …
    • sonra message(ascii_pizza_slice) (docs) kullanarak bir pizza dilimi göstermeli.
  • Üst düzey bir mikrodalga fırın nesnesi oluştur ve a_high_end_microwave değişkenine ata.
  • a_high_end_microwave nesnesinin cook() metodunu bir saniye pişirmek için çağır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
Kodu Düzenle ve Çalıştır