コンストラクタ

[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:こちらのエントリ、私のあまり好みでない継承のパターンにはまっているような気がしなくもないのですが・・・