0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】モジュール

Last updated at Posted at 2020-12-23

モジュール

  • 「インスタンス化できないクラス」のようなもの。
    • Class クラスは Module クラスのサブクラス。
    • 「クラス = モジュール + インスタンス化能力」

Mix-in

  • 制限された多重継承

  • Rubyは、クラスは1つしか継承できない。

  • Rubyは、モジュールという「クラスのようだがクラスではない」ものならば何個でも継承できる。

    • クラスがモジュールを継承することを include すると呼ぶ。

モジュールと継承

  • include したモジュールはクラスの ancestors メソッドに現れる。

  • クラスがモジュールを include すると、モジュールのインスタンスメソッドが手に入る

インスタンス化不能性

  • モジュールをインスタンス化することはできない。
  • Mix-inはあくまでも「トッピング」。主となるクラスに従として実装を提供するための「機能の集まり」(module)であり、具体的なもの(object)ではない。

名前空間

  • 異なる名前空間に属する同じ名前のクラスは、たまたま名前が同じでも別物として扱われる。
  • Rubyでは名前空間を提供するためにもモジュールを利用する習慣がある。

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?