以下はArrayを継承したクラスのインスタンスに対してArrayのインスタンスメソッドを使用するサンプルコードです。

class MyArray < Array
end

m = MyArray.new
n = MyArray.new
added = m + n

puts m.class #MyArray
puts n.class #MyArray
puts added.class #Array

ここでは+を使用しています。
上記のように、addedはArrayクラスのインスタンスとなっています。

この時に、サブクラスのインスタンスを得たいと考えています。何か方法はありますか?


追記

皆さま丁寧なご回答ありがとうございます。勉強になりました。
既存のメソッドを上書きし、戻り値がsuper classだった場合はsubclassのインスタンスを生成し、戻り値とする実装としました。
sendを使用する必要があり、不恰好ではありますが、gemにしてみました。

https://github.com/mmmmmavo/subper_class/blob/master/spec/subper_class_spec.rb