基本介紹
interface類型可以定義一組方法,但是這些不需要實現,並且interface不能包含任何變量。到某個自定義類型(比如結構體)要使用的時候,在根據具體情況把這些方法實現
基本語法
type 接口名 interface{
方法1(參數列表) 返回值列表
方法2(參數列表) 返回值列表
}
實現接口
func (t 自定義類型) 方法名1(參數列表)返回值列表{}
func (t 自定義類型) 方法名2(參數列表)返回值列表{}
1.接口裏的所有方法都沒有方法體,即接口的方法都是沒有實現的方法。接口體現了程序設計的多態和高內聚低耦合的思想
2.Golang中的接口,不需要顯式的實現,只要一個變量,含有接口類型中的所有方法,那麼這個變量就實現這個接口,因此,Golang中實現接口不需要任何關鍵字
注意事項
1.接口本身不能創建實例,但是可以指向一個實現了該接口的自定義類型的變量(實例)
2.接口中所有的方法都沒有方法體,即都是沒有實現的方法
3.在Golang中,一個自定義類型需要將某個接口的所有方法都實現,我們說這個自定義類型實現了該接口
4.一個自定義類型只有實現了某個接口,才能將自定義類型的實例(變量)賦給接口類型
5.只要是自定義數據類型,就可以實現接口,不僅僅是結構體類型
6.一個自定義類型可以實現多個接口
7.Golang接口中不能有任何變量
8.一個接口可以繼承多個別的接口,但是如果要實現該接口,也必須實現其他接口的多有方法
9.interface類型默認是一個指針(引用類型),如果沒有對interface初始化就使用,那麼會輸出nil
10.空接口interface{}沒有任何方法,所以所有類型都實現了空接口