十九: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{}没有任何方法,所以所有类型都实现了空接口

posted @ 2021-08-19 15:20  安心晨  阅读(319)  评论(0编辑  收藏  举报