Ruby で、親クラスの内容を小クラスに引き継ぐことを、クラスの継承といいます。

例えば、以下の親クラスがあるとします。

class Fluit
  def initialize(product)
    @product = product
  end

  def fluit
    puts @product
  end
end

banana = Fluit.new("バナナ")
banana.fluit

image2

Parfait という子クラスを作成し、Fluit クラスを継承します。

方法は、子クラスに『<』を入力し、親クラスを入力します。

class Parfait < Fluit
end

Parfait クラスでインスタンスを作成してみましょう。

class Fluit
  def initialize(product)
    @product = product
  end

  def fluit
    puts @product
  end
end

class Parfait < Fluit
end

banana = Parfait.new("バナナ")
banana.fluit

image3

子クラスで、親クラスのメソッドを実行することができました。

子クラスでは、親クラスのメソッドを上書きすることができます。

class Fluit
  def initialize(product)
    @product = product
  end

  def fluit
    puts @product
  end
end

class Parfait < Fluit
  def fluit
    puts "#{@product}を使っています。"
  end
end

banana = Fluit.new("りんご")
banana.fluit
banana = Parfait.new("バナナ")
banana.fluit

ターミナルで実行すると、

image4

親クラスを実行した場合、親クラスの内容が出力されました。

また、小クラスを実行した場合、親クラスのメソッドを上書きして出力されました。

ブログ一覧