【戻る】 【進む】   目次        24. 継承とインクルード - クラスの継承

クラスの継承

class A < B
  ...   
end

 
  • クラスの継承は定義時に<を用いて行う
  • AはBのサブクラス、下位クラス、クラスと言う
  • BはAのスーパークラス、上位クラス、クラスと言う
  • 継承を明示しなければObjectクラスを継承する
  • 単一継承
  • 継承で受け継ぐもの

  • 継承の意味

    super … 上位クラスの同名メソッドの呼び出し
     
     
    class Hello
      def hello
        "Hello"
      end
    end
    
    foo = Hello.new
    
    class Hello
      def hello
        "Hello!"
      end
    end
    
    bar = Hello.new
    
    puts foo.hello #=> Hello!
    puts bar.hello #=> Hello!
    
    class-inher0.rb
    class Hello
      def hello
        "Hello"
      end
    end
    
    foo = Hello.new
    
    class Hello1 < Hello
      def hello
        "Hello!"
      end
    end
    
    bar = Hello1.new
    
    puts foo.hello #=> Hello
    puts bar.hello #=> Hello!
    
    class-inher1.rb
    class Hello
      def hello
        "Hello"
      end
    end
    
    foo = Hello.new
    
    class Hello1 < Hello
      def hello
        super + "!"
      end
    end
    
    bar = Hello1.new
    
    puts foo.hello #=> Hello
    puts bar.hello #=> Hello!
    
    class-inher2.rb

    【戻る】 【進む】   目次        24. 継承とインクルード - クラスの継承