akios @ ウィキ

4.10.2. クラスやインタフェース型間の型のサブタイプ化

最終更新:

akios

- view
管理者のみ編集可

4. 型と値と変数

4.1. 型と変数の種類

4.2. プリミティブ型と値

4.3. 参照型と値

4.4. 型変数

4.5. 引数付き型

4.6. 型の抹消

4.7. 具象可能型

4.8. 未加工型

4.9. 交差型

4.10. サブタイプ化

4.10.1. プリミティブ型間の型のサブタイプ化

4.10.2. クラスやインタフェース型間の型のサブタイプ化

ジェネリック型宣言C<F1,...,Fn>が与えられた時、引数付き型C<T1,...,Tn>の直接スーパータイプは以下の通りです。:
  • Cの直接スーパータイプ。
  • Cの直接スーパーインタフェース。
  • Object型、もしCがインタフェース型で直接スーパーインタフェースを持たない場合。
  • 未加工型C。

Ti(1≦i≦n)をある型とすると、引数付き型C<T1,...,Tn>の直接スーパータイプは以下の全てです。:

  • D<U1θ,...,Ukθ>、ここでD<U1,...,Uk>はC<T1,...,Tn>の直接スーパータイプでありθは[F1:=T1,...,Fn:=Tn]の代用です。
  • C<S1,...,Sn>、ここでSiはTi(1≦i≦n)を含みます(4.5.1.)。

ここで少なくとも1つのRi(1≦i≦n)がワイルカード型実引数とすると、引数付き型C<R1,...,Rn>の直接スーパータイプは、C<R1,...,Rn>へ捕捉変換をかけた結果であるC<X1,...,Xn>の直接スーパータイプです。

交差型T1&...&Tnの直接スーパタイプはTi(1≦i≦n)です。

型実引数の直接スーパタイプはその制限にリストされた型です。

型変数はその最も低い制限の直接スーパータイプです。

ヌル型の直接スーパータイプはヌル型を除くすべての参照型です。

4.10.3. 配列型間の型のサブタイプ化

4.11. 型の使用箇所

4.12. 変数

目安箱バナー