Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: multiple inheritance, module, include, extend

Поддерживает ли Ruby множественное наследование?

Этот вопрос проверяет понимание того, как Ruby реализует гибкость и повторное использование кода без множественного наследования.

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

Ruby не поддерживает множественное наследование классов, но предоставляет модули (modules), которые можно подключать с помощью include и extend для достижения подобного эффекта.
 

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

Множественное наследование — это возможность одного класса наследовать поведение от нескольких классов. Ruby специально избегает этой концепции, так как она может привести к сложности и конфликтам, например, из-за неоднозначности при вызове методов.

Вместо этого Ruby предлагает модули. Они обеспечивают функциональность, которую можно добавлять к классам:

  • include — добавляет методы модуля как методы экземпляра.

  • extend — добавляет методы модуля как методы самого класса.

Пример:

module A
  	def greet
    		"Hello from A"
  	end
end

module B
  	def greet
    		"Hello from B"
  	end
end

class MyClass
  	include A
  	include B
end

obj = MyClass.new
puts obj.greet # => "Hello from B" (последний подключённый модуль имеет приоритет)

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • Ruby

    Ruby

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

#multiple inheritance

#module

#include

#extend

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