Arts >> Umění a zábava >  >> Magie >> Kouzelnické triky

Jak používáte super prut v rubínu?

V Ruby nelze přímo použít "super prut". Je to termín z her Pokémon, ne vlastnost programovacího jazyka Ruby.

Pokud však odkazujete na koncept dědičnosti a volání metod z nadřazené třídy, Ruby poskytuje klíčové slovo ,super`. Funguje to takto:

Pochopení `super`

* Dědičnost: V Ruby můžete vytvářet třídy, které dědí z jiných tříd. To znamená, že podřízená třída automaticky získá přístup k metodám a atributům nadřazené třídy.

* Přepisovací metody: V podřízené třídě můžete přepsat metody z nadřazené třídy. To znamená, že podřízená třída při volání použije svou vlastní implementaci metody.

* `super` klíčové slovo: Pokud chcete volat metodu nadřazené třídy uvnitř přepsané metody v podřízené třídě, použijte klíčové slovo `super`.

Příklad

```rubín

Vozidlo třídy

def inicializovat (značka)

@značka =značka

konec

definitivní začátek

vloží "Startující vozidlo #{@brand}..."

konec

konec

třída Auto definitivní začátek

super

říká "Motor nastartován. Připraven k jízdě!"

konec

konec

moje_auto =Car.new("Toyota")

my_car.start

```

Vysvětlení:

1. Definujeme třídu `Vehicle` pomocí metody `start`.

2. Vytvoříme třídu `Auto`, která dědí z `Vehicle`.

3. Třída `Car` potlačuje metodu `start`, ale uvnitř volá `super`, aby provedla metodu `start` z nadřazené třídy `Vehicle`.

4. Když vytvoříme objekt `Car` a zavoláme `start`, provedou se obě metody `start` `Vehicle` a `Car`'s `start`.

Klíčové body:

* `super` volá stejnojmennou metodu v nadřazené třídě.

* Můžete předat argumenty `super` a předat je rodičovské metodě.

* Pokud nepoužijete `super`, implementace metody podřízenou třídou zcela přepíše verzi rodiče.

Pokud máte další otázky týkající se dědictví nebo `super` v Ruby, neváhejte se zeptat!

Kouzelnické triky

Související kategorie