モジュール応用レベル

Ruby の Module#includeModule#extend の違いはどれですか?

  • 1include はインスタンスメソッド、extend はクラスメソッドとして追加する
  • 2include はクラスメソッド、extend はインスタンスメソッドとして追加する
  • 3両者に機能上の差はない
  • 4extend は継承チェーンに追加しない

解説

include はモジュールのメソッドをインスタンスメソッドとして混入します。extend はモジュールのメソッドをクラスメソッド(または特定オブジェクトのシングルトンメソッド)として追加します。

問題一覧へ戻る