我有以下 Ruby
程序:
class Access
def retrieve_public
puts "This is me when public..."
end
private
def retrieve_private
puts "This is me when privtae..."
end
protected
def retrieve_protected
puts "This is me when protected..."
end
end
access = Access.new
access.retrieve_protected
当我运行它时,我得到以下信息:
accessor.rb:23: protected method `retrieve_protected' called for #<Access:0x3925
758> (NoMethodError)
这是为什么?
谢谢。
最佳答案
因为您只能从该对象或该类(或子类)的另一个对象的内实例方法直接调用 protected 方法
class Access
def retrieve_public
puts "This is me when public..."
retrieve_protected
anotherAccess = Access.new
anotherAccess.retrieve_protected
end
end
#testing it
a = Access.new
a.retrieve_public
# Output:
#
# This is me when public...
# This is me when protected...
# This is me when protected...
关于Ruby - protected 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7050802/