@x親クラスに遅延ロードすると、問題なく呼び出して初期化できますが、のサブクラスAから呼び出そうとすると、の初期化メソッドが呼び出されず、 が返されます。何故ですか?AB@xnil
class A
def x
@x ||= 'x'
end
end
puts A.new.x # 'x'
class B < A
def use_x
puts @x.inspect # nil
end
end
@x親クラスに遅延ロードすると、問題なく呼び出して初期化できますが、のサブクラスAから呼び出そうとすると、の初期化メソッドが呼び出されず、 が返されます。何故ですか?AB@xnil
class A
def x
@x ||= 'x'
end
end
puts A.new.x # 'x'
class B < A
def use_x
puts @x.inspect # nil
end
end