super 的用法...


#1

記的 super 是呼叫 parent class 的方法「不帶參數」

但這個 super 可以丟參數…

是 super 有特例的用法嗎??


#2

這邊比你想像中的好理解

class A
  def yoo
    puts 123
  end
  def moo(x , y = 123 , z = 234)
    puts [x,y,z]
  end
end
class B < A
  def yoo
    super
  end
  def moo
    super(1,2)
  end
end
B.new.yoo
#=> 123
B.new.moo
#=> 1
#=> 2
#=> 234

anyway 自己實驗一下就知道了,super代表老爸的那層的自己同名的method,既然是method就可以加括號,上 block,其餘全部就都一樣了,和 self / this 相同,就是一個代表性的語法而已,重點是原生到底是啥,相同的還有 yield,其實就是取代掉 block.call 而已,所以上括號啥鬼的再正常也不過