@@class_variables seemed to have the same behavior - if they were changed in the subclass, and the parent defined a method, it wouldn't have access to the subclass's definition. (BTW - of course Constants don't change - but different subclasses could have different ones - with them never changing - but I digress)