【发布时间】:2016-09-30 04:31:32
【问题描述】:
我理解多态性并且对重载有模糊的理解,但如果有人彻底理解这两个概念来解释分类差异是什么以及重载是否是多态性的一种形式(似乎对此存在分歧),我将不胜感激。
【问题讨论】:
-
你可能比在维基百科上查找更糟糕:en.wikipedia.org/wiki/Polymorphism_%28computer_science%29
-
Haskell 具有 参数多态性,您可以在其中拥有在多种类型上相同工作的函数,例如
length :: [a] -> Int适用于字符串列表、双精度列表等。您只需要一个定义,因为参数多态值不关心参数是什么,只关心它的使用位置。它还具有用于 ad hoc polymorphism 的类型类,实现依赖于类型的函数,例如show :: Show a => a -> String是一系列函数,每个函数都有自己的定义:show :: Int -> String, show :: Double -> String, ...。
标签: c++ haskell computer-science