Arts >> Kunst og underholdning >  >> Magi >> Trylletricks

Hvordan bruger du super stang i rubin?

Du kan ikke direkte bruge "superstang" i Ruby. Det er et udtryk fra Pokémon-spillene, ikke en funktion i Ruby-programmeringssproget.

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

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!

Trylletricks

Relaterede kategorier