Ha azonban az öröklődés fogalmára és a szülőosztályból származó metódusok hívására hivatkozunk, a Ruby a `super` kulcsszót biztosítja. Így működik:
A "szuper" értelmezése
* Öröklés: A Rubyban olyan osztályokat hozhat létre, amelyek más osztályoktól öröklődnek. Ez azt jelenti, hogy a gyermekosztály automatikusan hozzáfér a szülőosztály metódusaihoz és attribútumaihoz.
* Felülbíráló módszerek: A szülőosztály metódusait felülbírálhatja az utódosztályban. Ez azt jelenti, hogy a gyermekosztály a metódus saját implementációját fogja használni, amikor hívják.
* `szuper` Kulcsszó: Ha a szülőosztály metódusát szeretné meghívni a felülírt metóduson belül az utódosztályban, használja a `super` kulcsszót.
Példa
``` rubin
osztályú Jármű
def inicializálás (márka)
@brand =márka
vége
def start
„Starting #{@brand} jármű...”
vége
vége
osztályú Autó
szuper
"A motor beindult. Vezetésre kész!"
vége
vége
my_car =Autó.új("Toyota")
my_car.start
```
Magyarázat:
1. Meghatározunk egy `Vehicle` osztályt egy `start` metódussal.
2. Létrehozunk egy "Gépkocsi" osztályt, amely a "Jármű"-ből örökli.
3. Az „Car” osztály felülírja a „start” metódust, de belül meghívja a „super” metódust, hogy végrehajtsa a „start” metódust a szülő „Jármű” osztályból.
4. Amikor létrehozunk egy `Car` objektumot, és meghívjuk a `start`-ot, a `Jármű `start` és `Car` `start` metódusai is végrehajtásra kerülnek.
Kulcspontok:
A * `super` meghívja a szülőosztály azonos nevű metódusát.
* Az argumentumokat átadhatja a `super'-nek, hogy átadja azokat a szülő metódusának.
* Ha nem használod a `super'-et, a metódus gyermekosztálybeli implementációja teljesen felülírja a szülő verzióját.
Ha további kérdése van az örökléssel vagy a Ruby "szuperrel" kapcsolatban, kérdezzen bátran!