一.基本介绍
接口也是一种数据类型,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口
也就是说,接口只做定义,不做实现
格式:
/* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] } /* 定义结构体 */ type struct_name struct { /* variables */ } /* 实现接口方法 */ func (struct_name_variable struct_name) method_name1() [return_type] { /* 方法实现 */ } func (struct_name_variable struct_name) method_name2() [return_type] { /* 方法实现 */ }
实现:
type Animal interface{ Talk() Name() string } type Dog struct{ } //实现接口必须要全部实现该接口定义的方法 func (dog Dog) Talk(){ fmt.Println("wang wang") } func (dog Dog) Name() string{ fmt.Println("wang chai") return "wang chai" } func main() { var animal Animal animal = new(Dog) animal.Talk() }
go build 并运行后,会返回 wang wang