十九:GO語言的介面(interface)
阿新 • • 發佈:2021-08-19
基本介紹
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{}沒有任何方法,所以所有型別都實現了空介面