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)です。
型実引数の直接スーパタイプはその制限にリストされた型です。
型変数はその最も低い制限の直接スーパータイプです。
ヌル型の直接スーパータイプはヌル型を除くすべての参照型です。