Men hvis du sikter til konseptet med arv og kallemetoder fra en overordnet klasse, gir Ruby nøkkelordet "super". Slik fungerer det:
Forstå "super"
* Arv: I Ruby kan du lage klasser som arver fra andre klasser. Dette betyr at den underordnede klassen automatisk får tilgang til den overordnede klassens metoder og attributter.
* Overstyrende metoder: Du kan overstyre metoder fra overordnet klasse i barneklassen. Dette betyr at barneklassen vil bruke sin egen implementering av metoden når den kalles.
* `super` søkeord: Hvis du vil kalle opp overordnet klasses metode inne i den overstyrte metoden i barneklassen, bruker du nøkkelordet `super`.
Eksempel
``` rubin
klasse kjøretøy
def initialize (merke)
@merke =merke
slutt
def start
setter «Starter #{@brand} kjøretøy...»
slutt
slutt
klasse Bil
super
setter "Motor startet. Klar til å kjøre!"
slutt
slutt
min_bil =Bil.ny("Toyota")
min_bil.start
```
Forklaring:
1. Vi definerer en `Vehicle`-klasse med en `start`-metode.
2. Vi lager en `Bil`-klasse som arver fra `Vehicle`.
3. `Car`-klassen overstyrer `start`-metoden, men kaller `super` inne for å utføre `start`-metoden fra den overordnede `Vehicle`-klassen.
4. Når vi oppretter et `Bil`-objekt og kaller `start`, blir både `Vehicle`s `start` og `Car`s `start`-metoder utført.
Nøkkelpoeng:
* `super` kaller metoden med samme navn i den overordnede klassen.
* Du kan sende argumenter til `super` for å sende dem til foreldrenes metode.
* Hvis du ikke bruker `super`, vil barneklassens implementering av metoden fullstendig overstyre foreldrenes versjon.
Hvis du har flere spørsmål om arv eller `super` i Ruby, spør gjerne!