Ruby 中如何调用父类的方法?

· 约 4 分钟读完 · 第 80 / 199 章

推荐答案

在 Ruby 中,可以通过 super 关键字来调用父类的方法。super 会自动调用与当前方法同名的父类方法,并将当前方法的参数传递给父类方法。

输出结果为:

本题详细解读

1. super 关键字的作用

super 关键字用于在子类中调用父类的同名方法。它会自动查找并调用父类中与当前方法同名的方法,并将当前方法的参数传递给父类方法。

2. super 的两种使用方式

  • 不带参数的 super:如果 super 不带参数,它会将当前方法的参数自动传递给父类方法。

    输出结果为:

  • 带参数的 super:如果 super 带参数,它会将指定的参数传递给父类方法。

    输出结果为:

3. super 与 super() 的区别

  • super:不带括号的 super 会将当前方法的参数自动传递给父类方法。

  • super():带括号的 super 不会传递任何参数给父类方法。

    输出结果为:

    在这个例子中,super() 没有传递任何参数给父类的 greet 方法,因此父类方法中的 name 参数为 nil。

4. 使用 super 的场景

  • 扩展父类方法:在子类中重写父类方法时,可以使用 super 来调用父类的实现,并在其基础上添加额外的功能。

  • 调用父类的构造函数:在子类的 initialize 方法中,可以使用 super 来调用父类的构造函数。

    在这个例子中,super(name) 调用了父类的 initialize 方法,并将 name 参数传递给它。