Arts >> Kunst en entertainment >  >> Magie >> Goocheltrucs

Hoe gebruik je Super Rod in Ruby?

Je kunt "super rod" niet rechtstreeks gebruiken in Ruby. Het is een term uit de Pokémon-spellen, geen onderdeel van de programmeertaal Ruby.

Als u echter verwijst naar het concept van overerving en het aanroepen van methoden van een bovenliggende klasse, geeft Ruby het sleutelwoord `super`. Hier is hoe het werkt:

`Super` begrijpen

* Erfenis: In Ruby kun je klassen maken die overerven van andere klassen. Dit betekent dat de onderliggende klasse automatisch toegang krijgt tot de methoden en attributen van de bovenliggende klasse.

* Overschrijvende methoden: U kunt methoden uit de bovenliggende klasse overschrijven in de onderliggende klasse. Dit betekent dat de onderliggende klasse zijn eigen implementatie van de methode zal gebruiken wanneer deze wordt aangeroepen.

* `super` trefwoord: Als je de methode van de bovenliggende klasse binnen de overschreven methode in de onderliggende klasse wilt aanroepen, gebruik je het trefwoord `super`.

Voorbeeld

```robijn

klasse Voertuig

def initialiseren(merk)

@merk =merk

einde

zeker beginnen

plaatst "Startend #{@brand} voertuig..."

einde

einde

klasse Auto zeker beginnen

super

zet "Motor gestart. Klaar om te rijden!"

einde

einde

mijn_car =Auto.new("Toyota")

mijn_auto.start

```

Uitleg:

1. We definiëren een `Vehicle`-klasse met een `start`-methode.

2. We creëren een klasse `Car` die overerft van `Vehicle`.

3. De klasse `Car` overschrijft de `start`-methode, maar roept `super` inside aan om de `start`-methode uit de bovenliggende `Vehicle`-klasse uit te voeren.

4. Wanneer we een 'Car'-object aanmaken en 'start' aanroepen, worden zowel de 'start'-methode van 'Voertuig' als de 'start'-methode van 'Car' uitgevoerd.

Belangrijkste punten:

* `super` roept de gelijknamige methode aan in de bovenliggende klasse.

* Je kunt argumenten doorgeven aan `super` om ze door te geven aan de methode van de ouder.

* Als u `super` niet gebruikt, zal de implementatie van de methode door de onderliggende klasse de versie van de ouder volledig overschrijven.

Als je nog vragen hebt over vererving of `super` in Ruby, stel ze gerust!

Goocheltrucs

Verwante categorieën