Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: super, overriding, inheritance

Зачем метод super?

Вопрос выявляет понимание механизма вызова методов родителя в Ruby.

Короткий ответ

Метод super вызывает метод с таким же именем из родительского класса. Он используется, чтобы сохранить или дополнить логику родительского метода.

Длинный ответ

Когда дочерний класс переопределяет метод, он может вызывать исходный метод родителя через super. Это полезно для сохранения части поведения родительского метода или для добавления нового функционала.

Пример:

class Parent
  	def greet
    		"Hello from Parent"
  	end
end

class Child < Parent
  	def greet
    		"#{super} and Child"
  	end
end

child = Child.new
puts child.greet # => "Hello from Parent and Child"

Передача аргументов:
super может автоматически передавать все аргументы родительскому методу:

class Parent
  	def greet(name)
    		"Hello, #{name}, from Parent"
  	end
end

class Child < Parent
  	def greet(name)
    		"#{super(name)} and Child"
  	end
end

child = Child.new
puts child.greet("John") # => "Hello, John, from Parent and Child"

super полезен, когда нужно расширить поведение родительского метода. Без него дочерний метод полностью заменяет родительский.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Ruby

    Ruby

Ключевые слова

#super

#overriding

#inheritance

Подпишись на Ruby Developer в телеграм