https://wiki.haskell.org/Polymorphism说
Ad-hoc 多态性是指当一个值能够采用多种类型中的任何一种时,因为它或它使用的值已经为每种类型提供了单独的定义。例如,与应用于整数相比,+ 运算符在应用于浮点值时所做的事情本质上是完全不同的——在 Python 中,它甚至可以应用于字符串。大多数语言至少支持一些临时多态性,但在像 C 这样的语言中,它仅限于内置函数和类型。其他语言(如 C++)允许程序员提供自己的重载,提供单个函数的多个定义,以消除参数类型的歧义。在 Haskell 中,这是通过类型类系统实现的和类实例。
尽管名称相似,但 Haskell 的类型类与大多数面向对象语言的类有很大不同。它们与接口有更多的共同点,因为它们通过类型签名指定一系列方法或值,由实例声明实现。
这是否意味着类型类是实现重载的一种方式,即即席多态性?
OO语言(如Java、C#)中的接口属于哪种多态,即组多态(即重载)还是子类型多态?
由于类型类类似于接口,接口是一种实现重载的方法,即特设多态性,就像类型类一样?
接口是否类似于基类,那么接口是实现子类型多态的一种方式,就像类继承一样?
谢谢。