1. 程式人生 > 其它 >十九:GO語言的介面(interface)

十九:GO語言的介面(interface)

基本介紹

  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{}沒有任何方法,所以所有型別都實現了空介面