据我目前的知识,用 定义的 Ruby 类Class.new
不应与用class
关键字创建的类不同。那么为什么跟随类 B 和 C 的行为不同呢?
class A
TEST = 'A'
def test
TEST
end
end
class B < A
def test
TEST
end
end
C = Class.new(A) {
def test
TEST
end
}
puts 'A: ' + A.new.test # => "A: A"
puts 'B: ' + B.new.test # => "B: A"
puts 'C: ' + C.new.test # => uninitialized constant TEST (NameError)
使用 ruby 1.9.3p327 和 ruby 1.8.7p358 进行测试。