我希望我的自定义类的实例具有与其超类相同的方法和行为,除非在其上调用返回某些内容的特定方法(例如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
.