Pokud však odkazujete na koncept dědičnosti a volání metod z nadřazené třídy, Ruby poskytuje klíčové slovo ,super`. Funguje to takto:
Pochopení `super`
* Dědičnost: V Ruby můžete vytvářet třídy, které dědí z jiných tříd. To znamená, že podřízená třída automaticky získá přístup k metodám a atributům nadřazené třídy.
* Přepisovací metody: V podřízené třídě můžete přepsat metody z nadřazené třídy. To znamená, že podřízená třída při volání použije svou vlastní implementaci metody.
* `super` klíčové slovo: Pokud chcete volat metodu nadřazené třídy uvnitř přepsané metody v podřízené třídě, použijte klíčové slovo `super`.
Příklad
```rubín
Vozidlo třídy
def inicializovat (značka)
@značka =značka
konec
definitivní začátek
vloží "Startující vozidlo #{@brand}..."
konec
konec
třída Auto
super
říká "Motor nastartován. Připraven k jízdě!"
konec
konec
moje_auto =Car.new("Toyota")
my_car.start
```
Vysvětlení:
1. Definujeme třídu `Vehicle` pomocí metody `start`.
2. Vytvoříme třídu `Auto`, která dědí z `Vehicle`.
3. Třída `Car` potlačuje metodu `start`, ale uvnitř volá `super`, aby provedla metodu `start` z nadřazené třídy `Vehicle`.
4. Když vytvoříme objekt `Car` a zavoláme `start`, provedou se obě metody `start` `Vehicle` a `Car`'s `start`.
Klíčové body:
* `super` volá stejnojmennou metodu v nadřazené třídě.
* Můžete předat argumenty `super` a předat je rodičovské metodě.
* Pokud nepoužijete `super`, implementace metody podřízenou třídou zcela přepíše verzi rodiče.
Pokud máte další otázky týkající se dědictví nebo `super` v Ruby, neváhejte se zeptat!