RubyGold試験の勉強の時に作成した自習問題
・過去に作成したものなのでコードの説明はありません(出来ない…)。
・実行結果をコメントとして記述しています(コード #=> 結果)。
・右往左往しているのでコードにもコメント化している箇所があります。

→ 「他の問題


#! ruby -Ks

#------------------------------------------------------------
# Gold基礎12.rb
# ■クラス2でリムーブしたらどうなる?
#------------------------------------------------------------

#--------------------------------------------------
# Define
#------------------------------
class Cls1
  def ms1
    "Cls1#ms1"
  end
end

#------------------------------
class Cls2 < Cls1
  undef ms1
end

#------------------------------
class Cls3 < Cls1
  def ms1
    "Cls3#ms1"
  end
#  remove_method ms1 # undefined local variable or method `ms1'
  remove_method :ms1
end

#------------------------------
class Cls4 < Cls1
#  remove_method :ms1 # method `ms1' not defined in Cls4 (NameError)
end


#--------------------------------------------------
# Execute
#------------------------------
puts Cls1.new.ms1  #=> Cls1#ms1

#puts Cls2.new.ms1  # :in `
': undefined method `ms1' for # (NoMethodError)

puts Cls3.new.ms1  #=> Cls1#ms1


#------------------------------------------------------------
# END
#------------------------------------------------------------