7.5.13 集合类型层级和类型一致性规则

除了7.4.5 类型一致性中的类型一致性规则外,下面的规则对所有的类型都适用,包括集合类型:

  • Set(X)、Bag(X)和Sequence(X)都是Collection(X)的子类

如下的类型一致性规则适用于集合类型

  • Type1Type2相同时,Type1符合Type2(适用所有类型的基本规则)
  • Type1Type2子类时,Type1符合Type2(适用所有类型的基本规则)
  • Type1Type2子类时,Collection(Type1)符合Collection(Type2)。这同样适用于Set(Type1)/ Set(Type2)、Sequence(Type1)/Sequence(Type2)Bag(Type1)/Bag(Type2)
  • 类型一致性是传递的:如果Type1符合Type2Type2符合Type3,那么Type1符合Type3(适用于所有的类型的基本规则)

举个例子,如果BicycleTransport的子类:

Set(Bicycle)符合Set(Transport)
Set(Bicycle)符合Collection(Bicycle)
Set(Bicycle)符合Collection(Transport)

注意Set(Bicycle)不符合Bag(Bicycle),反之亦然,因为Set和Bag没有子类关系。

results matching ""

    No results matching ""