Scala:亚型多态性与通用多态性
我想我知道多态性是什么 什么是普遍多态性?这两种多态性有何不同 发件人:: 10.9多态性和动态绑定 您在第10.4节中看到,Scala:亚型多态性与通用多态性,scala,oop,generics,polymorphism,type-systems,Scala,Oop,Generics,Polymorphism,Type Systems,我想我知道多态性是什么 什么是普遍多态性?这两种多态性有何不同 发件人:: 10.9多态性和动态绑定 您在第10.4节中看到,Element类型的变量可以引用 类型为ArrayElement的对象。这种现象的名称是 多态性,意思是“许多形状”或“许多形式”。在本例中, 元素对象可以有多种形式。[7] [7] 这种多态性称为子类型多态性。 Scala中另一种称为通用多态性的多态性是 在第19章中讨论 第19章没有提到“普遍多态性”一词。它确实讨论了类型参数化(泛型)。所以我猜“通用多态性”是类型
Element
类型的变量可以引用
类型为ArrayElement
的对象。这种现象的名称是
多态性,意思是“许多形状”或“许多形式”。在本例中,
元素
对象可以有多种形式。[7]
[7] 这种多态性称为子类型多态性。
Scala中另一种称为通用多态性的多态性是
在第19章中讨论
第19章没有提到“普遍多态性”一词。它确实讨论了类型参数化(泛型)。所以我猜“通用多态性”是类型prameterization的一个花哨的名字?但是,子类型多态性不是类型参数化的一个私密案例吗?通常,在谈论时,我们指的是两件事:
它们不是直接相关的,而是同一根的两个分支。当我们开始谈论关于变异的“是亚型”关系时,当我们问诸如“既然长颈鹿是动物的一个亚型,那么一盒长颈鹿是动物的一个亚型吗?”之类的问题时,我希望多态性不是一个过多的术语。子类型有时被称为“子类型多态性”,而泛型则被称为“参数多态性”。不,子类型不是参数多态性的特殊情况(尽管讨论的方差最终涉及两个主题)我希望人们不使用一个线性回答的评论。我不认为我的评论是答案。如果你这样做了,请随意将其作为答案发布。作为一个社区维基来回答问题是一种不用乞求投票的方式。