カスタム クラスのインスタンスに、何かを返す特定のメソッドが呼び出されない限り、そのスーパークラスと同じメソッドと動作を持たせたい (たとえばnext
、次Numeric
のシーケンスを返す)。この場合、 のように動作する必要がありString
ます。
class MyNumber < Numeric
...
end
val = MyNumber.new(1)
# acts like a regular Numeric
val.next
#=> 2
val
#=> "Hello 2!"
puts "Hey #{val}"
#=> "Hey Hello 2!"
上記の状況では、 を再定義するだけだと思いto_s
ます。