私が知っているように、それらの違いを書き留めておきます
- モジュールはインスタンス化できませんが、クラスはインスタンス化できます
- 複数のモジュールをインクルード/拡張できますが、継承できるクラスは 1 つだけです
上記の2つを除いて、それらの間に他の違いは見られません
- どちらもクラスレベル変数 (@@) を持つことができます
- どちらもクラス インスタンス レベル変数を持つことができます (@、モジュール/クラスで直接初期化)
- どちらもインスタンス変数を持つことができます (@、メソッド内で初期化)
- どちらもグローバル変数 ($) を持つことができます
- どちらも、名前を使用して直接呼び出すことができるメソッドを持つことができます ("self" を前に付けます)。
- どちらも内部クラスを持つことができます
- モジュールをインクルードおよび拡張するクラスは、そのすべてのメソッド (非プライベート) にアクセスできます。これは、クラスからの継承がサブクラスに対して行うのと同じです。
多重継承を除外すると、クラスとモジュールの違いはオブジェクトの作成だけですか?
(私はRubyの経験があまりなく、クラスとモジュールの違いを理解しようとしているだけです。私が見逃している可能性のあるものは何でも遠慮なく指摘してください)