コンストラクタ
[id:pmoky:20050827:1125095586]*1
ファクトリーを作ってやるのがよさそうですけど、なんか、違う気もしますね。
class HogeObjectFactory { static HogeObject getHogeObject(Base base) { if( base is Deprived ){ return new HogeObjectDeprived( (Deprived)base ); }else( base is Base ){ return new HogeObject(base); } } }
私にとって、継承とは、多態を実現するためだけの機構だと割り切っているので、上のような回答で満足ですが、継承を多態以外の目的で使っていると、上のようなコードは、全く見当外れかもしれないですね。
*1:こちらのエントリ、私のあまり好みでない継承のパターンにはまっているような気がしなくもないのですが・・・