Go语言接口
定义一个接口
type 接口变量 interface {
函数名称(形参列表)(返回值列表)
函数名称(形参列表)(返回值列表)
}
注意点
1.接口中只能有方法的声明, 不能有方法的实现
2.接口中只能有方法的声明, 不能有变量的声明
3.只有实现了接口中声明的所有方法, 才算实现了接口, 才能使用接口变量保存
4.在实现接口的时候, 方法名称,形参列表,返回值列表必须一模一样
5.接口和结构体一样, 可以嵌套
6.接口和结构体一样, 嵌套时不能嵌套自己(自己搞自己)
7.可以将集接口变量赋值给子集接口变量,不可以将子集接口变量赋值给超集接口变量(无论实际的数据类型是否已经实现了超集的所有方法)
8.接口中不能出现同名的方法声明
package main
import (
"fmt"
)
type Phone interface {
//接口中只能有方法的声明, 不能有方法的实现
call()
}
type NokiaPhone struct {
video int
}
func (nokiaPhone NokiaPhone) call() {
nokiaPhone.video = 1
fmt.Println