C++厨ですが改宗を決めました。

えーと、あるクラスのメソッドをoverrideするとき、例えば下記ですが、

class Foo < File
def each_line(sep)
aProc = Proc.new
super(sep, &aProc)
end
end

と、わざわざProc.newしないで super(sep) と書くだけで上にブロックまで
もが渡されるのはなんでですか?そういうものですか?

手元に「プログラミングRuby」と「オブジェクト指向スクリプト言語Ruby」が
あるんですが、説明ってどっかにありますかねえ…。

是非おしえてくださいませ。。