Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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"