Avant que j'ai lu cet article, j'ai pensé que le contrôle d'accès dans Ruby a travaillé comme ceci:
-
public
- peut être consulté par n'importe quel objet (par exemple,Obj.new.public_method
) -
protected
- ne peut être consulté à partir de l'objet lui-même, ainsi que toutes les sous-classes -
private
- mêmes protégées, mais la méthode n'existe pas dans les sous-classes
Cependant, il semble que l' protected
et private
agir de la même, sauf pour le fait que vous ne pouvez pas appeler private
méthodes explicitement avec un récepteur (c'est à dire self.protected_method
fonctionne, mais self.private_method
n'en ont pas).
Quel est le point de tout cela? Quand il y a un scénario si vous ne voulez pas que votre méthode appelée explicitement avec un récepteur?