Rubyリファレンス: Home

remove_method (Module)

Edit   History

標準クラス・モジュール > Module > remove_method

private

remove_method(name, ...)

undef_methodメソッドは、クラスやモジュールからメソッドを削除します。引数にはメソッド名をシンボルか文字列で指定します(複数指定できます)。戻り値はクラスやモジュール自身です。

undef_methodメソッドとは違い、削除できるのはそのクラス・モジュールで定義されたメソッドだけです。親クラスのメソッドは指定できません。また、削除したメソッドと同名のメソッドが親クラスにある場合は、親クラスのメソッドが呼び出されるようになります。

class Parent
  def greet() "hello" end
end
 
class Child < Parent
  def greet() "good morning" end
end
 
child = Child.new
puts child.greet
Child.class_eval { remove_method :greet }
puts child.greet
good morning
hello

関連項目