调用super和调用super()有什么区别?如果传递给子方法的参数与父预期的参数不匹配,那么哪个是最好的。
答案 0 :(得分:20)
当您在没有参数的情况下调用super
时,Ruby会向当前对象的父级发送一条消息,要求它调用与您调用super
的名称相同的方法,以及传递给该方法的参数。
另一方面,当使用super()
调用时,它不会向父节点发送任何参数。
如果您所拥有的参数与父预期的参数不匹配,那么我会说您会想要使用super()
,或者在函数调用中显式列出参数以匹配有效的父构造函数。
答案 1 :(得分:17)
指示向对象祖先链发送的参数
super - sends all arguments
super() - no arguments