クラスの同種配列が作成されます。派生したオブジェクトでのみ構成できます。つの分岐のみが異種混合ルートを定義できます。以上のインスタンスを含む配列を作成する処理の結果です。通常、この処理は連結またはインデックス付き代入です。以下のステートメントは、インデックス付き代入を使用して異種混合配列を構成します。取得したオブジェクトが含まれている場合、新しいオブジェクトをこの配列に割り当てると、配列のクラスが変化することがあります。クラスのオブジェクトのみを含む同種配列を考えてみましょう。LeafA同じルートから取得した別のクラスのオブジェクトを同種配列に追加すると、配列のクラスが最も特定的なスーパークラスに変換されます。呼び出す場合、以下のことが必要となります。このメソッドが、配列のクラスから直接定義するか、またはスーパークラスから継承することにより、この異種混合配列のクラスについて定義されている。(サブクラスによって上書きされない)。継承されたメソッドをシールする必要がある場合は、「継承されたメソッドのシーリング」を参照してください。メソッドを決定します。メソッドにディスパッチするときに、配列中の各要素のクラスを評価しません。ある場合、すべての配列要素で正しく、予想可能な挙動が確実になります。ない場合にこれらのメソッドを異種混合配列で呼び出すには、これらのメソッドをオーバーライドしなければなりません。サブクラス化して、異種混合配列を定義するとします。スーパークラスを呼び出します。n、式harray(n)が異種混合配列でないことを利用できます。特殊要件は適用されません。コンストラクターを呼び出して、欠落している配列要素に埋め込みます。欠落している配列要素の埋め込みは、以下のような場合に必要となります。インデックス付き代入によりギャップがある配列が作成される。定義されていない場合、以下のようになります。ファイルから異種混合配列をロードします。呼び出したメソッドの既定の実装を実行します。クラスのインスタンスを返します。クラスから取得したクラスのインスタンスが返るようにできます。メソッドをオーバーライドして、既定のオブジェクトのクラスを指定します。クラスでのみオーバーライドできます。メソッドは、以下のシグネチャを含んでいます。メソッドは、以下の条件を満たさなければなりません。オブジェクトなしでこのメソッドを呼び出します。ユーザーは呼び出しません。このメソッドをシールし、異種混合階層のユーザーが、クラスの意図した挙動を変更しないようにします。オブジェクトを返せなければなりません。テストを渡さなければなりません。以下のようになります。クラスから取得したクラスのインスタンスを取れることを意味します。インデックス付けまたは連結を再定義できない異種混合配列では、一貫したインデックス付けと連結挙動が必要です。サブクラスは既定のインデックス付き参照、インデックス付き代入、連結挙動を変更できません。サブクラスで以下のメソッドをオーバーライドできません。加えて、サブクラスからサブクラスを継承する複数継承の場合、サブクラスはこれらのいずれのメソッドも定義できません。オブジェクトを連結すると、オブジェクトのクラスが維持され、異種混合配列は作成されません。オブジェクトを連結すると、異種混合配列が作成されます。すべてが同じルート階層の一部である場合、配列メンバーのクラスを変換しません。右側のオブジェクトを割り当てます。異種混合配列へのインデックス付き代入では、以下のすべてが可能です。既存の配列要素の上書き。配列内に含まれるオブジェクトのプロパティ値の変更。配列が異種混合かどうかの変更。異種混合配列でのインデックス付き参照は、元の配列のサブ範囲を返します。要素に基づいて、結果は、元の配列と異なるクラスになり、異種混合ではなくなる場合もあります。メソッドが存在すればそれを呼び出し、支配クラスにオブジェクトを変換します。メソッドを実装すると、異種混合階層の一部ではないオブジェクトを含む異種混合配列が構成できます。クラスから取得されます。メソッドを呼び出そうとします。メソッドを実装します。クラス構成でこの変換が不要な場合は、このメソッドを実装する必要はありません。メソッドは、以下のシグネチャを含めなければなりません。