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 注意,除非你真的需要,否则你不应该拉出这样的大黑魔法枪.在大多数情况下,重新设计您的类层次结构,以便您不需要这样做是更好的选择. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |