Arts >> Taide ja viihde >  >> Taikuus >> Taikatemput

Kuinka käytät supersauvaa rubiinissa?

Et voi suoraan käyttää "super sauvaa" Rubyssa. Se on termi Pokémon-peleistä, ei Ruby-ohjelmointikielen ominaisuus.

Jos kuitenkin viittaat periytymis- ja kutsumenetelmien käsitteeseen pääluokasta, Ruby tarjoaa "super"-avainsanan. Näin se toimii:

Ymmärtää sanan "super"

* Perintö: Rubyssa voit luoda luokkia, jotka perivät muilta luokilta. Tämä tarkoittaa, että aliluokka saa automaattisesti pääsyn pääluokan menetelmiin ja attribuutteihin.

* Ohittavat menetelmät: Voit ohittaa aliluokan yläluokan menetelmiä. Tämä tarkoittaa, että lapsiluokka käyttää menetelmän omaa toteutusta, kun sitä kutsutaan.

* super-avainsana: Jos haluat kutsua yläluokan menetelmää aliluokan ohitetun menetelmän sisällä, käytä super-avainsanaa.

Esimerkki

``` rubiini

luokan ajoneuvo

def alustaa (brändi)

@brändi =merkki

loppu

def start

laittaa "Aloitus #{@brand} ajoneuvo..."

loppu

loppu

luokan auto def start

super

laittaa "Moottori käynnistetty. Valmis ajoon!"

loppu

loppu

my_car =Auto.uusi("Toyota")

my_car.start

```

Selitys:

1. Määrittelemme "ajoneuvo"-luokan "aloitus"-metodilla.

2. Luomme "Auto"-luokan, joka perii "Ajoneuvosta".

3. Luokka "Auto" ohittaa "start"-metodin, mutta kutsuu "super" sisällä suorittaakseen "start"-metodin yläluokan "Vehicle"-luokasta.

4. Kun luomme "Auto"-objektin ja kutsumme "start", sekä "ajoneuvon"- että "auton" -menetelmät suoritetaan.

Avainkohdat:

* `super` kutsuu samannimistä menetelmää yläluokassa.

* Voit välittää argumentteja "super" siirtääksesi ne ylätason menetelmälle.

* Jos et käytä `super`, aliluokan menetelmän toteutus ohittaa täysin ylätason version.

Jos sinulla on lisää kysyttävää perinnöstä tai "superista" Rubyssa, kysy rohkeasti!

Taikatemput

Lähikategoriat