@x
親クラスに遅延ロードすると、問題なく呼び出して初期化できますが、のサブクラスA
から呼び出そうとすると、の初期化メソッドが呼び出されず、 が返されます。何故ですか?A
B
@x
nil
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
から呼び出そうとすると、の初期化メソッドが呼び出されず、 が返されます。何故ですか?A
B
@x
nil
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