【发布时间】:2015-10-26 05:20:50
【问题描述】:
我有以下 Ruby 代码:
class B
class << self
protected
def prot
puts "victory"
end
end
end
class C < B
def self.met
C.prot
end
end
C.met
它试图证明受保护的类方法在 Ruby 中是继承的。问题是,如果我将met方法转换为这样的实例方法:
class B
class << self
protected
def prot
puts "victory"
end
end
end
class C < B
def met
C.prot
end
end
c = C.new
c.met
这行不通。也许它与类和实例方法范围有关?
【问题讨论】:
-
我收到错误:
protected method 'protegido' called for C:Class- 这表明继承确实有效……只是保护也有效。 -
@Rodrigo 你明白了吗
标签: ruby scope class-method instance-method