1

ルビーで

class A
  @x = 1
  @y = 2
  attr_accessor :x, :y
end

class B < A
  @z = 3
  attr_accessor :z
end

a = A.new
b = B.new

[1] A (a) のインスタンスを B に変換しますか? C ++でAのメンバー値を失うことなく、static_cast、reinterpret_cast、「変換」演算子などがあります.Rubyでこれを行う方法は? (ショートカットはありますか)、たとえば

b = a.convert_to B
# b.x = 1
# b.y = 2
# b.z = 3

[2]継承されたデータメンバーが多数ある場合、aの値を使用してB(b)インスタンスの継承された各データメンバー値を上書きする方法は? (これを行うための組み込みメソッドまたはショートカットはありますか?)たとえば

a.x = 1
a.y = 2

b.x = 3
b.y = 4
b.z = 6

b.overwrite_all_inherited_method_from a
# b.x = 1
# b.y = 2
# b.z = 6
4

1 に答える 1