Men om du hänvisar till konceptet med arv och anropsmetoder från en överordnad klass, tillhandahåller Ruby nyckelordet "super". Så här fungerar det:
Förstå "super"
* Arv: I Ruby kan du skapa klasser som ärver från andra klasser. Detta innebär att den underordnade klassen automatiskt får tillgång till den överordnade klassens metoder och attribut.
* Åsidosättande metoder: Du kan åsidosätta metoder från den överordnade klassen i den underordnade klassen. Detta innebär att barnklassen kommer att använda sin egen implementering av metoden när den anropas.
* `super` nyckelord: Om du vill anropa den överordnade klassens metod inuti den åsidosatta metoden i den underordnade klassen, använder du nyckelordet `super`.
Exempel
``` rubin
klass Fordon
def initialize(brand)
@märke =varumärke
slut
def start
sätter "Startar #{@brand} fordon..."
slut
slut
klass Bil
super
sätter "Motor startad. Klar att köra!"
slut
slut
min_bil =Bil.ny("Toyota")
min_bil.start
```
Förklaring:
1. Vi definierar en `Fordon`-klass med en `start`-metod.
2. Vi skapar en `Car`-klass som ärver från `Vehicle`.
3. `Car`-klassen åsidosätter `start`-metoden, men anropar `super` inuti för att exekvera `start`-metoden från den överordnade `Vehicle`-klassen.
4. När vi skapar ett `Car`-objekt och anropar `start`, exekveras både `Fordonets` start- och `Car`s `startmetoder.
Nyckelpoäng:
* `super` anropar metoden med samma namn i den överordnade klassen.
* Du kan skicka argument till `super` för att skicka dem till förälderns metod.
* Om du inte använder "super", kommer barnklassens implementering av metoden att helt åsidosätta förälderns version.
Om du har några fler frågor om arv eller `super` i Ruby, fråga gärna!