一.接口(interface)
接口是一种类型,一种抽象的类型
(1)接口的写法
/*1. 定义接口 */
type interface_name interface {
method_name1 [return_type]
method_name2 [return_type]
method_name3 [return_type]
...
method_namen [return_type]
}
/*2. 定义结构体 */
type struct_name struct {
/* variables */
}
/*3. 实现接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
/* 方法实现 */
}
(2)接口的实例
//1.Sayer接口
type Sayer interface{
say()
}
//2.定义了dog和cat两个结构体
type dog struct{}
type cat struct{}
//3.因为Sayer接口只有一个say()方法,所以我们只需要将dog和cat分别实现say方法就可以实现Sayer接口了
/*dog实现Sayer接口*/
func(d dog) say(){
fmt.Println("汪汪汪")
}
/*cat实现Sayer接口*/
func(c cat) say(){
fmt.Println("喵喵喵")
}
// 主函数的写法
func main() {
var s Sayer
s = new(dog)
s.say()
s = new(cat)
s.say()
}
注意:
接口的实现就是这么简单,只要实现了接口中的所有方法,就实现了这个接口
接口类型变量可以存储任何实现了该接口的类型的值