Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:亚型多态性与通用多态性_Scala_Oop_Generics_Polymorphism_Type Systems - Fatal编程技术网

Scala:亚型多态性与通用多态性

Scala:亚型多态性与通用多态性,scala,oop,generics,polymorphism,type-systems,Scala,Oop,Generics,Polymorphism,Type Systems,我想我知道多态性是什么 什么是普遍多态性?这两种多态性有何不同 发件人:: 10.9多态性和动态绑定 您在第10.4节中看到,Element类型的变量可以引用 类型为ArrayElement的对象。这种现象的名称是 多态性,意思是“许多形状”或“许多形式”。在本例中, 元素对象可以有多种形式。[7] [7] 这种多态性称为子类型多态性。 Scala中另一种称为通用多态性的多态性是 在第19章中讨论 第19章没有提到“普遍多态性”一词。它确实讨论了类型参数化(泛型)。所以我猜“通用多态性”是类型

我想我知道多态性是什么

什么是普遍多态性?这两种多态性有何不同

发件人::

10.9多态性和动态绑定

您在第10.4节中看到,
Element
类型的变量可以引用 类型为
ArrayElement
的对象。这种现象的名称是 多态性,意思是“许多形状”或“许多形式”。在本例中,
元素
对象可以有多种形式。[7]

[7] 这种多态性称为子类型多态性。 Scala中另一种称为通用多态性的多态性是 在第19章中讨论


第19章没有提到“普遍多态性”一词。它确实讨论了类型参数化(泛型)。所以我猜“通用多态性”是类型prameterization的一个花哨的名字?但是,子类型多态性不是类型参数化的一个私密案例吗?

通常,在谈论时,我们指的是两件事:

  • 参数多态性(又称类型参数化,又称泛型)
  • 包含多态性(又称亚型多态性)

  • 它们不是直接相关的,而是同一根的两个分支。当我们开始谈论关于变异的“是亚型”关系时,当我们问诸如“既然长颈鹿是动物的一个亚型,那么一盒长颈鹿是动物的一个亚型吗?”之类的问题时,我希望多态性不是一个过多的术语。子类型有时被称为“子类型多态性”,而泛型则被称为“参数多态性”。不,子类型不是参数多态性的特殊情况(尽管讨论的方差最终涉及两个主题)我希望人们不使用一个线性回答的评论。我不认为我的评论是答案。如果你这样做了,请随意将其作为答案发布。作为一个社区维基来回答问题是一种不用乞求投票的方式。