Ruby保护方法问题

时间:2011-02-27 18:33:14

标签: ruby oop visibility

我有一个简单的Ruby基类,其中所有方法都需要具有受保护的可见性。当另一个类继承基类并调用其方法时,就会出现问题。 Ruby解释器停止并告诉我它解释的第一个方法是受保护的方法,并告诉我类不能调用它。这是我的代码:

class Base
  protected
  def methodOne
    # method code
  end

  def methodTwo
    # method code
  end

end

当子类从基类调用方法时会发生错误。

Subclass.new.methodOne 

我很明显错过了Ruby的可见性/继承模型。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:3)

您只能调用自己的和继承的受保护方法。

您正在做的是创建另一个新对象(使用Base.new)并在其上调用methodOne。您需要执行self.methodOne

示例:

class Extended < Base

  def new_method
    self.methodOne # calling method one defined in Base
  end

end