У меня есть два класса A
и B
. Класс B
переопределяет метод foo
класса A
. Класс B
имеет метод bar
, в котором я хочу вызвать метод foo
суперкласса. Каков синтаксис для такого вызова?
class A
def foo
"hello"
end
end
class B < A
def foo
super + " world"
end
def bar
# how to call the `foo` method of the super class?
# something similar to
super.foo
end
end
Для методов класса я могу вызывать методы вверх по цепочке наследования путем явного префикса имени класса. Интересно, есть ли подобная идиома для методов экземпляра.
class P
def self.x
"x"
end
end
class Q < P
def self.x
super + " x"
end
def self.y
P.x
end
end
Редактировать
Мой вариант использования является общим. Я знаю, что для конкретного случая я могу использовать технику alias
. Это обычная функция в Java или C ++, поэтому мне интересно знать, возможно ли это сделать без добавления дополнительного кода.