上級 › クラス変数 @@var はサブクラスとも共有されてしまう › パターン4
クラス変数 @@var はサブクラスとも共有されてしまう
@@で始まるクラス変数は、そのクラスだけでなく継承したサブクラスとも1つの値を共有します。
1 class Logger 2 ______________________________________________________________________________________________ ^ 3 end 4 5 class DebugLogger < Logger 6 end 7 8 Logger.increment 9 Logger.increment 10 puts DebugLogger.count
出力: 2
空欄を埋めて実行を通す
「クラス変数はクラスごとに独立しているはず」という思い込みは誤りです。継承関係にある全クラスで1つの実体を共有します。
次の問題