クラス変数は、そのクラスに存在するので、継承したときに継承したクラスの変数ができるわけではなく、 継承先の子から親の変数を指し示すことができるだけ。
class BaseClass @@s = “baseclass” def BaseClass.s @@s end def BaseClass.s=(val) @@s = val end end class ExtendClass < BaseClass end class ExtendClass2 < BaseClass end p BaseClass.s #=> “baseclass” p ExtendClass.s #=> “baseclass” p ExtendClass2.s #=> “baseclass” ExtendClass.s = “ab” p BaseClass.s #=> “ab” 親も変わる p ExtendClass.s #=> “ab” p ExtendClass2.s #=> [...]
