From: kjana@...4lab.to (YANAGAWA Kazuhisa) Date: 2003-03-14T20:58:46+09:00 Subject: [ruby-list:37323] Re: $B7Q>5$5$l$?%/%i%9$NDj?t$N07$$$K$D$$$F(B In message <20030314.185853.884008586.skimura@sp.hudson.co.jp> skimura@sp.hudson.co.jp writes: > クラスを継承するときに、定数の定義だけを変更することで、サブクラスの動作 > を変更するような仕組みを考えていたのですが、そううまくはいかないってこと > ですね。 > > 継承したメソッドで、サブクラスで再定義した定数値を参照するようにする方法 > はないのでしょうか? 1. self.class::Constants とする class Foo C = 0 def show p self.class::C end end class Bar < Foo C = 1 end Foo.new.show #=> 0 Bar.new.show #=> 1 2. そもそも定数をあきらめて,クラスのインスタンス変数をを使ってクラ スメソッドで読み書きする class Foo @c = 0 def Foo.new super(@c) end def initialize(c) @ic = c end def show p @ic end end class Bar < Foo @c = 1 end Foo.new.show #=> 0 Bar.new.show #=> 1 といったあたりが考えられます. # これだけ見るとどう考えても 1 がお勧め. -- 柳川和久 @ 東大阪市 . 大阪府 March 14, 2003 He knows most who speaks least.