会社の同僚の方に一度教えてもらったのですが、うろ覚えだったので復習しておきます。 alias_method_chainは、既存のメソッドを継承クラスなんて作らなくてもオーバーライドしてくれます。メソッドの再定義と違うのは、オーバーライド前のメソッドも呼べてしまうところ。  まずは、メソッドを定義します。

class Integer
  def next_with_goodby
    next_without_goodby.to_s + ", and goodby"
  end
  alias_method_chain :next, :goodby
end

こうしておくと、

3.next #=> "4, and goodby"

となります。ポイントはnext_without_goodbyというメソッド。これがオーバーライド前のメソッドになります。