# B class redefine class variable
class A
@@class_var = 'first'
def first
@@class_var
end
end
class B < A
@@class_var = 'second'
def second
@@class_var
end
end
p B.new.first # => second
p B.new.second # => second
p B.singleton_methods # => []
# A and B class have different variable
# In this case we have instance(singleton) variable for A and B
class A
@class_var = 'first'
class << self
attr_accessor :class_var
end
def first
A.class_var
end
end
class B < A
@class_var = 'second'
class << self
attr_accessor :class_var
end
def second
B.class_var
end
end
p B.new.first # => first
p B.new.second # => second
p B.singleton_methods # => [:class_var, :class_var=]
Saturday, June 29, 2013
Ruby class variables
Labels:
Ruby
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment