野田と申します。
仕事中に少しつっかかったところがありまして投稿いたします。

class A
  def initialize(a = nil)
    if a != nil then
      self = a            #(*)
#     @x = a.get()        #(**)
    end
  end

  def set(x)
    @x = x
  end

  def get()
    return @x
  end
end

class B < A
  def initialzie(a)
    super(a)
  end
end

a = A.new
a.set(1)
b = B.new(a)
b.get()  =>  1が返ってきて欲しい

当然、(*)の箇所でコンパイルエラーになるのですが、
意味合いとしては、「親クラスで生成したインスタンスを
子クラスのインスタンスの親インスタンス(?)にしたい」
とでもいいますでしょうか。

もちろん、上記の例では(*)の代わりに(**)を使えば実現する
かと思うのですが、インスタンス変数が多いとちょっと面倒に
なってしまいます。

質問の内容は、このような発想はそもそもオブジェクト指向上
ありえないのでしょうか。子インスタンスが親クラスを制御し
ようとしているような感じですし。
それとも、もしこのような発想がありえるとすると、Rubyで
表現可能なのかな、ということです。

実際に仕事ではVB.NETで書いていたのですが、本質的にはRubyでも
同じだと思いまして、こちらに投稿いたしました。

つたない日本語で申し訳ありませんが、ご理解いただけた方
なにかご助言をいただけないでしょうか。

---
nonta / yo.rim.or.jp