這幾個詞在不同的語言的意思和內容可以不一樣也可以一樣
大概有這麼幾種
1. 描述一些需求(子型別多型)
2. 描述要求存在(有限多型)
3. 描述特定情況(特設多型)
4. 顯示要求標註實現4.a. 可批次標註(大多依賴泛型)
5. 不要求標註實現(鴨子型別)
6. 提供預設實現
php 的 trait,oc 的 interface 屬於 6
oc 的 protocol 屬於 1, 4
go,typescript 的 interface 屬於 1, 5
java c# 等的 interface 屬於 1, 4, 6
js 的 protocol 提案 屬於 1, 2, 4
c艹 的 concept 屬於 2, 3, 5
Haskell 的 typeclass,c# 的 concept 提案 屬於 2, 3, 4, 4.a
rust 的 trait 屬於 1, 3, 4, 4.a
swift 的 protocol 屬於 1, 3, 4, 4.a, 6
scala 的 trait 屬於 1, 2, 3, 4, 4.a, 6
這幾個詞在不同的語言的意思和內容可以不一樣也可以一樣
大概有這麼幾種
1. 描述一些需求(子型別多型)
2. 描述要求存在(有限多型)
3. 描述特定情況(特設多型)
4. 顯示要求標註實現4.a. 可批次標註(大多依賴泛型)
5. 不要求標註實現(鴨子型別)
6. 提供預設實現
php 的 trait,oc 的 interface 屬於 6
oc 的 protocol 屬於 1, 4
go,typescript 的 interface 屬於 1, 5
java c# 等的 interface 屬於 1, 4, 6
js 的 protocol 提案 屬於 1, 2, 4
c艹 的 concept 屬於 2, 3, 5
Haskell 的 typeclass,c# 的 concept 提案 屬於 2, 3, 4, 4.a
rust 的 trait 屬於 1, 3, 4, 4.a
swift 的 protocol 屬於 1, 3, 4, 4.a, 6
scala 的 trait 屬於 1, 2, 3, 4, 4.a, 6