>>923
ありがとうございます。undefなんてあるのですね。知りませんでした。
リファレンスマニュアルを読むと
http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%AF%A5%E9%A5%B9%A1%BF%A5%E1%A5%BD%A5%C3%A5%C9%A4%CE%C4%EA%B5%C1#undef

> undef のより正確な動作は、メソッド名とメソッド定義との 関係を取り除き、
> そのメソッド名を特殊な定義と関連づけます。この状態の メソッドの呼び出しは
> 例えスーパークラスに同名のメソッドがあっても例外 NameError を発生させます。
> (一方、メソッド Module#remove_method は、関係を取 り除くだけです。
> この違いは重要です)。

と書いてあるのですが、この重要な違いとやらがさっぱり分かりません。
どなたかわかりやすく解説していただけませんか。