Men hvis du henviser til begrebet arv og kaldemetoder fra en overordnet klasse, giver Ruby nøgleordet `super`. Sådan fungerer det:
Forstå "super"
* Arv: I Ruby kan du oprette klasser, der arver fra andre klasser. Det betyder, at den underordnede klasse automatisk får adgang til den overordnede klasses metoder og attributter.
* Tilsidesættende metoder: Du kan tilsidesætte metoder fra den overordnede klasse i den underordnede klasse. Det betyder, at børneklassen vil bruge sin egen implementering af metoden, når den kaldes.
* `super` søgeord: Hvis du vil kalde den overordnede klasses metode inde i den tilsidesatte metode i den underordnede klasse, bruger du nøgleordet `super`.
Eksempel
``` rubin
klasse Køretøj
def initialize(brand)
@brand =mærke
ende
def start
sætter "Starter #{@brand} køretøj..."
ende
ende
klasse Bil
super
sætter "Motor startet. Klar til at køre!"
ende
ende
min_bil =Bil.ny("Toyota")
min_bil.start
```
Forklaring:
1. Vi definerer en `Køretøj` klasse med en `start` metode.
2. Vi opretter en `Bil`-klasse, der arver fra `Køretøj`.
3. `Car`-klassen tilsidesætter `start`-metoden, men kalder `super` inde for at udføre `start`-metoden fra den overordnede `Vehicle`-klasse.
4. Når vi opretter et `Car`-objekt og kalder `start`, udføres både `Vehicle`s `start` og `Car`s `start`-metoder.
Nøglepunkter:
* `super` kalder metoden af samme navn i den overordnede klasse.
* Du kan videregive argumenter til `super` for at videregive dem til forældrenes metode.
* Hvis du ikke bruger `super`, vil børneklassens implementering af metoden fuldstændig tilsidesætte forældrenes version.
Hvis du har flere spørgsmål om arv eller 'super' i Ruby, er du velkommen til at spørge!