###前提・実現したいこと
rubyの下記コードにおいて、クラスを動的に生成できることは
確認し、インスタンス変数(@name)も生成できることは理解したのですが、
親クラスのインスタンス変数(@size)までは定義できません。
@sizeも動的に生成することは可能でしょうか?
###該当のソースコード
class Vesicle attr_accessor :size def initialize @size = 1 end def speed(max) "speed max is #{max * 2}" end end ["Car", "Train"].each do |vahi| Object.const_set vahi, Class.new(Vesicle){ attr_accessor :name def initialize @name = self.class.name.downcase end } end p a = Car.new # => #<Car:0x007f878b8742d0 @name="car"> p a.speed(2) # => "speed max is 4" p b = Train.new # => #<Train:0x007f878b86f9b0 @name="train"> p b.name # => "train" p b.size # => nil
###補足情報(言語/FW/ツール等のバージョンなど)
Ruby2.4.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/04 12:00