考慮以下代碼:試圖使用Ruby超級調用方法直接
class Hello
def hi
puts "Hello"
end
end
class HelloWorld < Hello
def hi
super.hi
puts "World"
end
end
HelloWorld.new.hi
給出輸出:
$ ruby super.rb
Hello
super.rb:9:in `hi': undefined method `hi' for nil:NilClass (NoMethodError)
from super.rb:14:in `<main>'
爲什麼你好得到印?我希望只是得到錯誤。此外,我知道我真的應該做的只是撥打super
而不是super.hi
,但我想了解「引擎蓋下」發生了什麼。
謝謝!這是完全合理的。 –