Въпреки това, ако имате предвид концепцията за наследяване и извикване на методи от родителски клас, Ruby предоставя ключовата дума `super`. Ето как работи:
Разбиране на „супер“
* Наследяване: В Ruby можете да създавате класове, които наследяват други класове. Това означава, че дъщерният клас автоматично получава достъп до методите и атрибутите на родителския клас.
* Приоритетни методи: Можете да замените методите от родителския клас в дъщерния клас. Това означава, че дъщерният клас ще използва собствената си реализация на метода, когато бъде извикан.
* `super` Ключова дума: Ако искате да извикате метода на родителския клас вътре в заменения метод в дъщерния клас, използвате ключовата дума `super`.
Пример
``` рубин
клас Превозно средство
def инициализиране (марка)
@brand =марка
край
def начало
поставя „Стартиране на #{@brand} превозно средство...“
край
край
клас Автомобил <Превозно средство
def начало
супер
поставя "Двигателят стартира. Готов за шофиране!"
край
край
my_car =Car.new("Toyota")
my_car.start
```
Обяснение:
1. Дефинираме клас `Vehicle` с метод `start`.
2. Създаваме клас `Car`, който наследява от `Vehicle`.
3. Класът `Car` замества метода `start`, но извиква `super` вътре, за да изпълни метода `start` от родителския клас `Vehicle`.
4. Когато създадем обект `Car` и извикаме `start`, се изпълняват както методите `start` на `Vehicle`, така и `start` на `Car`.
Ключови точки:
* `super` извиква метода със същото име в родителския клас.
* Можете да подадете аргументи към `super`, за да ги предадете към метода на родителя.
* Ако не използвате `super`, изпълнението на метода от дъщерния клас напълно ще замени версията на родителя.
Ако имате още въпроси относно наследяването или „супер“ в Ruby, не се колебайте да попитате!