关于继承的小问题

关于继承的小问题

请问一下这段程序为什么报错hash.rb:18:in `php?name=to_s" onclick="tagshow(event)" class="t_tag">to_s': undefined method `+' for nil:NilClass (NoMethodError)
    from hash.rb:22

代码如下:
class Song
 def initialize(name,artist,duration)
  @name=name
  @artist=artist
  @duration=duration
 end
 def to_s
  puts("#@name, #@artist, #@duration, ")
 end
 end

class KaraokeSong < Song
 def initialize(name,artist,duration,lyrics)
  super(name,artist,duration)
  @lyrics=lyrics
 end
 def to_s
super + "#@lyrics"
 end
end
song=KaraokeSong.new("love","cat",2,"dddddddd")
song.to_s

菜鸟求教,不胜感激~!~!
希望高手能帮我解答一下:因为Programming Ruby中文版page29就有这个例子,我不知道错在哪里。。。
Song#to_s 方法你只是做了一个 puts,但是没有返回值
其子类KaraokeSong在 to_s 方法体中调用 super 返回值是 nil,nil 是没有 + 方法的
那请问应该怎么改呢?谢谢~!


[Copy to clipboard] [ - ]