./ruby/test/instancevars.rb

download original
class B
  def bb
    @b
  end

  def bb=(x)
    @b=x
  end
end


class C <B
  def cb
    @b
  end

  def cb=(x)
    @b=x
  end
end


module M
  def mb
    @b
  end

  def mb=(x)
    @b=x
  end
end



class X <C
  include M
end


c=C.new
c.bb = 1
c.cb = 2

x=X.new
x.bb = 1
x.cb = 2
x.mb = 3

print <<-EOS
#{c.bb}
#{c.cb}
#{x.bb}
#{x.cb}
#{x.mb}
EOS


# prints:
#
# 2
# 2
# 3
# 3
# 3
#
# => all instance variables of all inherited/included classes/modules
#    share one namespace

  
back to test

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>