最佳答案
在我阅读 这篇文章之前,我认为 Ruby 中的访问控制是这样工作的:
public
-可以被任何对象访问(例如 Obj.new.public_method
)protected
-只能从对象本身以及任何子类中访问private
-与 protected 相同,但是该方法不存在于子类中但是,看起来 protected
和 private
的作用是相同的,只是不能使用显式接收方调用 private
方法(也就是说,self.protected_method
工作,但是 self.private_method
不工作)。
这有什么意义?在什么情况下,您不希望使用显式接收方调用您的方法?