调用super和调用super()之间的区别

时间:2015-08-04 18:00:16

标签: ruby

调用super和调用super()有什么区别?如果传递给子方法的参数与父预期的参数不匹配,那么哪个是最好的。

2 个答案:

答案 0 :(得分:20)

当您在没有参数的情况下调用super时,Ruby会向当前对象的父级发送一条消息,要求它调用与您调用super的名称相同的方法,以及传递给该方法的参数。

另一方面,当使用super()调用时,它不会向父节点发送任何参数。

如果您所拥有的参数与父预期的参数不匹配,那么我会说您会想要使用super(),或者在函数调用中显式列出参数以匹配有效的父构造函数。

答案 1 :(得分:17)

指示向对象祖先链发送的参数

super - sends all arguments
super() - no arguments