親クラスのコンストラクタ

親クラスのメソッドを呼ぶときと同じでいいみたい。

class Base
  attr_reader :field

  def initialize(field)
    @field = field
  end

  def to_s
    instance_variables.map {|v|
      "#{v}=#{eval(v)}"
    }.join(',')
  end
end

class Derive < Base
  attr_reader :field2

  def initialize(field, field2)
    super(field) # 親クラスのコンストラクタ呼出し
    @field2 = field2
  end
end

puts Base.new('field')
puts Derive.new('field', 'field2')