【戻る】 【進む】   目次   後     29. 継承とインクルード - クラスとモジュールの織りなす系列

クラスとモジュールの織り成す系列

 
  • superはインクルードしたメソッドも呼ぶ
  • superは親クラスのメソッドも呼ぶ

  • class C0
      def foo
        "C0"
      end
    end
    
    module M
      def foo
        "M->" + super
      end
    end
    
    class C1 < C0
      include M
      def foo
        "C1->"+super
      end
    end
    puts C1.new.foo #=> C1->M->C0
    
    class-module0.rb
     
  • ancestorsメソッドは、自分の家系を返す
  • 最上位にはObjectクラス, Kernelモジュールがある
  • class C1
      include M0
    end
    
    module M3
      include M2
    end
    
    module M6
      include M4
      include M5
    end
    
    class C7 < C1
      include M3
      include M6
    end
    
    C7.ancestors
    #=>[C7, M6, M5, M4, M3, M2, C1, M0, O, K]
    
    M6.ancestors #=>[M6, M5, M4]
    
    class-module1.rb

     
    【戻る】 【進む】   目次   後     29. 継承とインクルード - クラスとモジュールの織りなす系列