在Ruby中调用超级方法

Kyl*_*ten 1 ruby methods inheritance derived super

我试图在Ruby中定义一些具有继承层次结构的类,但我想在派生类的基类中使用其中一个方法.扭曲的是,我不想调用我所处的确切方法,我想要调用另一种方法.以下不起作用,但这是我想做的(基本上).

class A
    def foo
        puts 'A::foo'
    end
end

class B < A
    def foo
        puts 'B::foo'
    end
    def bar
        super.foo
    end
end
Run Code Online (Sandbox Code Playgroud)

saw*_*awa 5

可能这就是你想要的?

class A
  def foo
    puts 'A::foo'
  end
end

class B < A
  alias bar :foo
  def foo
    puts 'B::foo'
  end
end

B.new.foo # => B::foo
B.new.bar # => A::foo
Run Code Online (Sandbox Code Playgroud)