高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > 列挙タイプ > 列挙タイプの拡張
  
列挙タイプの拡張
列挙タイプは展開でき、制約的、すなわち共分散の 手法による使用がサポートされています。たとえば、以下の図に示すように、MySize を MyDerivedSize によって拡張し、MyDerivedItem の指定どおりに使用できます。
展開された EnumeratedType インスタンスを使用する際の 1 つの注意点は、モデルに具象タイプを使用する場合、このタイプはデータベースから読み返すことができる唯一のタイプとなります。この図の例を使用すると、これは、MySize のほかのサブクラスは、MyItem のサイズ属性に割り当ててデータベースに保存できますが、モデル化されたタイプのインスタンスとしてのみ読み出せるということを意味します。
MySize が抽象タイプであれば、この制限は適用されません。抽象クラスをモデル化すると、実行時タイプ情報はインスタンス情報とともにデータベースに保存されます。このため、正確なタイプとインスタンスは、データベースから読み取るときに再構築できます。