Ak však hovoríte o koncepte dedenia a volaní metód z nadradenej triedy, Ruby poskytuje kľúčové slovo „super“. Funguje to takto:
Pochopenie „super“
* Dedičstvo: V Ruby môžete vytvárať triedy, ktoré dedia z iných tried. To znamená, že podriadená trieda automaticky získa prístup k metódam a atribútom rodičovskej triedy.
* Prepísanie metód: V podradenej triede môžete prepísať metódy z rodičovskej triedy. To znamená, že podriadená trieda pri volaní použije svoju vlastnú implementáciu metódy.
* `super` kľúčové slovo: Ak chcete volať metódu rodičovskej triedy v rámci prepísanej metódy v podradenej triede, použite kľúčové slovo `super`.
Príklad
```rubín
Vozidlo triedy
def inicializovať (značka)
@značka =značka
koniec
definitívny začiatok
vloží „Štartovacie vozidlo #{@brand}...“
koniec
koniec
triedy Auto
super
uvádza "Motor naštartovaný. Pripravený na jazdu!"
koniec
koniec
moje_auto =Car.new("Toyota")
my_car.start
```
Vysvetlenie:
1. Definujeme triedu `Vehicle` pomocou metódy `start`.
2. Vytvoríme triedu `Auto`, ktorá zdedí triedu `Vehicle`.
3. Trieda `Auto` prepisuje metódu `start`, ale vo vnútri volá `super`, aby sa spustila metóda `start` z nadradenej triedy `Vehicle`.
4. Keď vytvoríme objekt `Car` a zavoláme `start`, vykonajú sa metódy `start` `Vehicle` a `Car``s `start`.
Kľúčové body:
* `super` volá metódu s rovnakým názvom v nadradenej triede.
* Môžete zadať argumenty `super`, aby ste ich odovzdali rodičovskej metóde.
* Ak nepoužijete `super`, implementácia metódy podradenou triedou úplne prepíše verziu rodiča.
Ak máte ďalšie otázky týkajúce sa dedičstva alebo „super“ v Ruby, neváhajte sa opýtať!