У меня есть два класса 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
Edit
Мой вариант использования - общий. В конкретном случае я знаю, что могу использовать технику alias
. Это обычная функция в Java или С++, поэтому мне интересно узнать, можно ли это сделать без добавления дополнительного кода.