Ruby中类变量和实例变量
@shared = 100
class MyClass
class << self
attr_accessor :shared
end
end
class MyClass_2 < MyClass
@shared = 500
end
p MyClass.shared ---> nil
MyClass.shared = 1
p MyClass.shared ----> 1
p MyClass_2.shared ---> 500
首先在Object类中定义了一个实例变量shared,而访问MyClass.shared的时候发现shared没有初始化,所以返回nil
而对于子类MyClass_2由于集成了父类中中的attr_accessor方法,而且自己定了实例变量 shared 所以等于 500
1.类变量是可以继承的
2.实例变量是不能继承的