subtype
との関係についてはある程度理解していsubclass
ますが、それが正しいかどうかはわかりません。
具体的なクラス (ジェネリック/高次クラスではない)
Java や Scala で具体的なクラスや型を宣言するとします。
class B
class A extends B
classA
が class のサブクラスである場合B
、 typeは type ?A
のサブタイプでなければなりません。B
また、 typeA
が type のサブタイプの場合B
、 classA
は class のサブクラスB
? A
(とB
が両方のクラスであると仮定)
しかし、それらは具象クラスまたは型である場合にのみ真です
高次のクラス/型
しかし、高次の型の場合、これは当てはまりませんよね? 言う:
class A[+T]
次に、 typeA[String]
は type のサブタイプですA[Object]
がA[String]
、 のサブクラスではありませんA[Object]
よね?