是否可以访问类ruby之外的受保护方法
我听说受保护的方法只能由继承的成员访问。但在ruby中,上述操作是可能的。代码正确吗?是的,代码正确。类的实例能够调用self方法,即使它们受到是否可以访问类ruby之外的受保护方法,ruby,Ruby,我听说受保护的方法只能由继承的成员访问。但在ruby中,上述操作是可能的。代码正确吗?是的,代码正确。类的实例能够调用self方法,即使它们受到保护受保护/私有方法从外部隐藏,但从内部隐藏。方法机密仍受保护。您不能从类(或继承的类)之外调用它。但是你可以用self调用它,因为它与self仍然在同一个类中。self可以简化为self,因为self是隐式接收者。然而,如果secret是private一个人不能使用显式接收器,甚至self;你必须只写secret。“继承成员”是什么意思?此外,如果可能
保护
<代码>受保护/私有方法从外部隐藏,但从内部隐藏。方法机密
仍受保护。您不能从类(或继承的类)之外调用它。但是你可以用self调用它,因为它与self仍然在同一个类中。self可以简化为self,因为self是隐式接收者。然而,如果secret
是private
一个人不能使用显式接收器,甚至self
;你必须只写secret
。“继承成员”是什么意思?此外,如果可能的话,这是一个正确的代码。“是否有可能在类之外访问受保护的方法”-您不能从类之外访问受保护的方法secret
。您可以访问public方法使用self说\u secret\u
。从类内调用受保护的方法。
class User
def say_secret_with_self
self.secret
end
protected
def secret
"secret"
end
end
u = User.new
p u.say_secret_with_self # => "secret"