Rubyメモ: クラスを継承する

Ruby は単一継承に制限されているので、多重継承はできません。 派生クラスのコンストラクタ (initialize) から基底クラスのコンストラクタ (initialize) を呼び出すには、super を使用します。

class Base
  def initialize(name)
    @name = name
  end
end

class Derived < Base
  def initialize(name, age)
    super(name)
    @age = age
  end
end

d = Derived.new('makkuma')
puts d.inspect

super というキーワードは、initialize メソッドに限らず、親クラスの同名メソッドを呼び出す目的で使用できます。 super に渡すパラメータを省略すると、呼び出し元のメソッドに渡されたものと同じパラメータが渡されます。