我有以下 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
它行不通。也许它与类和实例方法范围有关?