Arts >> Kultur & Nöje >  >> Magi >> Trolleritrick

Hur använder man superspö i ruby?

Du kan inte direkt använda "super rod" i Ruby. Det är en term från Pokémon-spelen, inte en del av programmeringsspråket Ruby.

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 def start

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!

Trolleritrick

Relaterade kategorier