class A
#define class level attribute called key
class << self
attr_accessor :key
end
end
class B < A
end
B.key = "foo"
B.key # returns "foo"
A.key # returns nil
如果我希望A.key在上述场景中返回“foo”,该怎么办?
答案 0 :(得分:1)
我知道的唯一方法是手动声明类函数。子类将返回父级的值,但不能让它们返回不同的值。
class A
def self.key
@@key
end
def self.key=(new_val)
@@key = new_val
end
end
答案 1 :(得分:0)
类方法不能是虚拟的。这就是生活。当你有一个类时,你没有虚拟表。