Этот вопрос проверяет понимание наследования и гибкости в изменении поведения классов.
Методы наследуются от родительского класса, если они не переопределены. Методы можно переопределить в дочернем классе, чтобы изменить их поведение.
В Ruby дочерний класс наследует методы своего родителя. Это означает, что все методы, определённые в родительском классе, доступны в дочернем, если они не приватные.
Пример наследования:
class Parent
def greet
"Hello from Parent"
end
end
class Child < Parent; end
child = Child.new
puts child.greet # => "Hello from Parent"Переопределение метода:
Дочерний класс может изменить поведение метода:
class Child < Parent
def greet
"Hello from Child"
end
end
child = Child.new
puts child.greet # => "Hello from Child"Использование super:
Если дочерний метод должен использовать поведение родителя, можно вызвать super:
class Child < Parent
def greet
"#{super} and Child"
end
end
puts child.greet # => "Hello from Parent and Child"Ruby позволяет гибко наследовать и изменять методы, упрощая настройку классов под конкретные задачи.