Arts >> Kunst og underholdning >  >> Magi >> Trylletriks

Hvordan bruker du superstang i rubin?

Du kan ikke direkte bruke "superstang" i Ruby. Det er et begrep fra Pokémon-spillene, ikke en funksjon i Ruby-programmeringsspråket.

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

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!

Trylletriks

Relaterte kategorier