Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

superで上位クラスの同名メソッドを呼び出す

super は現在のメソッドがオーバーライドしているメソッドを呼び出し ます。括弧と引数が省略された場合には現在のメソッドの引数がそのまま引き 渡されます。引数を渡さずにオーバーライドしたメソッドを呼び出すには super() と括弧を明示します。

実例

こんなのがあったとすると

class RingArray < Array
  def [](i)
    super i % size
  end
end

こんな感じになります

test =  RingArray.new(['a','b','c','d'])
test[0]                         # => "a"
test[3]                         # => "d"
test[4]                         # => "a"