Alors que je suis en train d'apprendre Haskell, j'ai remarqué son type de classe, qui est censé être une grande invention qui proviennent de Haskell.
Cependant, dans la page de Wikipedia sur le type de classe:
Le programmeur définit un type de classe en spécifiant un ensemble de fonction ou les noms de constantes, de concert avec leurs types, qui doit exister pour chaque type qui appartient à la classe.
Ce qui semble assez proche de Java de l'Interface de moi (en citant Wikipédia(Interface Java) de la page):
Une interface en langage de programmation Java est un type abstrait qui est utilisé pour indiquer une interface (au sens générique du terme) que les classes doivent implémenter.
Ces deux looks plutôt similaire: type de classe limite d'un type de comportement, alors que l'interface limite de la classe de comportement.
Je me demande quelles sont les différences et les similitudes entre le type de classe en Haskell et de l'interface en Java, ou peut-être qu'ils sont fondamentalement différents?
EDIT: j'ai remarqué que même haskell.org admet qu'ils sont similaires. Si ils sont si semblables (ou sont-ils?), alors pourquoi le type de classe est traitée avec un tel battage médiatique?
PLUS EDIT: Wow, tellement de bonnes réponses! Je crois que je vais laisser la communauté décider qui est le meilleur. Cependant, en lisant les réponses, toutes semblent juste de dire que "il ya beaucoup de choses typeclass peuvent faire si l'interface ne peuvent ou doivent composer avec les médicaments génériques". Je ne peux pas m'empêcher de me demander, est-il rien interfaces peuvent faire tout typeclasses ne le peuvent pas? Aussi, j'ai remarqué que Wikipédia affirme que typeclass a été inventé en 1989 papier *"Comment faire ad-hoc polymorphisme moins ad hoc", tout en Haskell est encore dans son berceau, alors que Java projet a été lancé en 1991 et le premier publié en 1995. Donc peut-être lieu de typeclass étant similaire aux interfaces, c'est l'inverse, c'est-interfaces ont été influencés par typeclass? Existe-il des documents/documents de soutien ou d'infirmer cela? Merci pour toutes ces réponses, elles sont toutes très instructif!
Merci pour toutes les entrées!