Jos kuitenkin viittaat periytymis- ja kutsumenetelmien käsitteeseen pääluokasta, Ruby tarjoaa "super"-avainsanan. Näin se toimii:
Ymmärtää sanan "super"
* Perintö: Rubyssa voit luoda luokkia, jotka perivät muilta luokilta. Tämä tarkoittaa, että aliluokka saa automaattisesti pääsyn pääluokan menetelmiin ja attribuutteihin.
* Ohittavat menetelmät: Voit ohittaa aliluokan yläluokan menetelmiä. Tämä tarkoittaa, että lapsiluokka käyttää menetelmän omaa toteutusta, kun sitä kutsutaan.
* super-avainsana: Jos haluat kutsua yläluokan menetelmää aliluokan ohitetun menetelmän sisällä, käytä super-avainsanaa.
Esimerkki
``` rubiini
luokan ajoneuvo
def alustaa (brändi)
@brändi =merkki
loppu
def start
laittaa "Aloitus #{@brand} ajoneuvo..."
loppu
loppu
luokan auto
super
laittaa "Moottori käynnistetty. Valmis ajoon!"
loppu
loppu
my_car =Auto.uusi("Toyota")
my_car.start
```
Selitys:
1. Määrittelemme "ajoneuvo"-luokan "aloitus"-metodilla.
2. Luomme "Auto"-luokan, joka perii "Ajoneuvosta".
3. Luokka "Auto" ohittaa "start"-metodin, mutta kutsuu "super" sisällä suorittaakseen "start"-metodin yläluokan "Vehicle"-luokasta.
4. Kun luomme "Auto"-objektin ja kutsumme "start", sekä "ajoneuvon"- että "auton" -menetelmät suoritetaan.
Avainkohdat:
* `super` kutsuu samannimistä menetelmää yläluokassa.
* Voit välittää argumentteja "super" siirtääksesi ne ylätason menetelmälle.
* Jos et käytä `super`, aliluokan menetelmän toteutus ohittaa täysin ylätason version.
Jos sinulla on lisää kysyttävää perinnöstä tai "superista" Rubyssa, kysy rohkeasti!