module C def initialize print :C super end end module B def self.included(base) base.send :include, C end def initialize print :B super end end class A include B def initialize print :A super end end A.new 問5 問4における状態から最小の改変で出力をCABとしたい。どうすればいいか。 ─答え─ 問1 正解: A 解説: 前方のメソッドが後方のメソッドで上書きされるから。 問2 正解: AB 解説: `include B`により継承順位が`A -> B`となり、A#initializeにおけるsuperでB#initializeが呼ばれるから。継承順位はA.ancestorsで確認できます