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