以前、 何でModuleモジュールのプライベートメソッドが任意のクラスで見えるか は分かったけれど、 どうしてinclude extend 二通りの継承方法があるのかがまだ分からない。 「そういうものだから」といわれたらそれまでだけど わざわざextend というルールを採用した理由は? そこにはどんな思想があるのか。 調べてみよう。 include,extend の違い 前に理解したのは、 include インスタンスメソッドとして取り込む extend クラスメソッドとして取り込む このレベルまで。 でも考えてみたら、 Moduleでもクラスメソッドを定義できるし module_function メソッドも存在する。 いろんな機能がごっちゃになって整理できていない。 順に追ってみよう。 extendはオブジェクトへの追加 公式ガイドをみてみると Module#include は、 クラ