|
|
||
module Printable def print; end end module Document def print; end end class Book include Document end class Book2 include Document include Printable end Book.ancestors # => [Book, Document, Object, Kernel, BasicObject] Book2.ancestors # => [Book2, Printable, Document, Object, Kernel, BasicObject]
include Documentした際にはBook2の上にDocumentの継承チェーンを作る。include Printableの時にBook2の上にPrintableが配置され、Documentはひとつ上に押し上げられる。なので、例えばBook2でprintメソッドを呼び出した場合はPrintableモジュールのprintが実行される。