加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby:在子类中调用父类的覆盖方法

发布时间:2020-12-16 22:16:43 所属栏目:百科 来源:网络整理
导读:说我有B类派生自A类 有可能这样调用A的覆盖方法吗? class A def method1 end def method2 endendclass B A def method1 ### invoke method2 of class A is what I want to do here end def method2 endend #不完全与How do I call an overridden parent cla
说我有B类派生自A类

有可能这样调用A的覆盖方法吗?

class A
  def method1
  end
  def method2
  end
end

class B < A
  def method1
  ### invoke method2 of class A is what I want to do here
  end
  def method2
  end
end

#不完全与How do I call an overridden parent class method from a child class?重复,但我们似乎也想做同样的事情.

解决方法

我假设B应该从A继承,你只是在你的示例代码中打错了.如果不是这样,那你就没办法去做.

否则,您可以通过将A的method2实例方法绑定到当前的B对象并像下面这样调用:

class A
  def method1
  end
  def method2
  end
end

class B < A
  def method1
    A.instance_method(:method2).bind(self).call
  end
  def method2
  end
end

注意,除非你真的需要,否则你不应该拉出这样的大黑魔法枪.在大多数情况下,重新设计您的类层次结构,以便您不需要这样做是更好的选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读