お世話になります。Ruby技術者認定試験合格教本Goldの問題において理解できない部分があったので質問します。
###問題のコード
Ruby
1module Mod 2 def foo 3 puts "Mod" 4 end 5end 6 7class Cls1 8 def foo 9 puts "Cls1" 10 end 11end 12 13class Cls2 < Cls1 14 include Mod 15 undef foo 16end 17 18Cls2.new.foo #=> 例外発生 19 20#Cls1クラスで定義されたfooは、Cls2クラスでundefにより定義が取り消されているため。
###わからなかった点
undef foo
によってCls1のインスタンスメソッドfoo
が取り消されているのは理解できました。しかしCls2
にModule Mod
がinclude
されており、その中にもfoo
メソッドがあります。
**この場合、module Mod
のfoo
メソッドもundef foo
の影響を受けていると考えていいのでしょうか?**言い換えますとmoduleのfooメソッドも参照できなくなっているかどうかが理解できませんでした。
その点について問題集の解説から読み取れなかったので、教えていただけたら幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/17 04:58
2020/06/17 04:59
2020/06/17 05:33
2020/06/17 13:39
2020/06/18 00:33
2021/12/08 14:04
2021/12/14 09:57
2021/12/14 14:41
2021/12/14 14:46