Ancak, kalıtım kavramından ve ebeveyn sınıftan çağrı yöntemlerinden bahsediyorsanız, Ruby 'super' anahtar sözcüğünü sağlar. İşte nasıl çalışıyor:
'Süper'i anlamak
* Miras: Ruby'de diğer sınıflardan miras alan sınıflar oluşturabilirsiniz. Bu, alt sınıfın otomatik olarak ana sınıfın yöntemlerine ve niteliklerine erişebileceği anlamına gelir.
* Geçersiz Kılma Yöntemleri: Alt sınıfta ana sınıftan yöntemleri geçersiz kılabilirsiniz. Bu, alt sınıfın çağrıldığında yöntemin kendi uygulamasını kullanacağı anlamına gelir.
* `süper` Anahtar Kelime: Eğer ana sınıfın metodunu alt sınıfta geçersiz kılınan metodun içinde çağırmak isterseniz, 'super' anahtar kelimesini kullanırsınız.
Örnek
yakut
sınıf Araç
def başlat(marka)
@marka =marka
son
kesinlikle başlangıç
"#{@brand} araç başlatılıyor..." yazıyor
son
son
sınıf Araba
süper
"Motor çalıştırıldı. Sürüşe hazır!"
son
son
my_car =Araba.new("Toyota")
my_car.start
''''
Açıklama:
1. `Start` metoduyla `Vehicle` sınıfını tanımlıyoruz.
2. `Vehicle`dan miras alan bir `Car` sınıfı yaratıyoruz.
3. 'Car' sınıfı 'start' yöntemini geçersiz kılar, ancak ana 'Vehicle' sınıfından 'start' yöntemini yürütmek için içeriden 'super'ı çağırır.
4. Bir `Araba' nesnesi yaratıp `start'ı çağırdığımızda, hem `Vehicle`ın `start` hem de `Car`ın `start` yöntemleri yürütülür.
Önemli Noktalar:
* `super` ana sınıfta aynı isimli metodu çağırır.
* Argümanları ebeveyn yöntemine aktarmak için `super' öğesine iletebilirsiniz.
* Eğer 'super' kullanmazsanız, alt sınıfın yöntemi uygulaması, ebeveynin versiyonunu tamamen geçersiz kılacaktır.
Ruby'de kalıtım veya 'süper' hakkında başka sorularınız varsa sormaya çekinmeyin!