主题
接口的定义
接口(interface)是一组方法签名的集合,定义对象的行为规范。
1. 定义接口
使用 interface
关键字定义接口类型:
go
type Speaker interface {
Speak() string
}
接口中只包含方法签名,不实现具体方法。
2. 实现接口
任意类型只要实现接口中所有方法,即隐式实现该接口:
go
type Person struct {
Name string
}
func (p Person) Speak() string {
return "Hello, my name is " + p.Name
}
Person
类型自动实现了 Speaker
接口。
3. 接口变量
接口类型变量可以存储实现该接口的任意类型值:
go
var s Speaker
s = Person{Name: "Alice"}
fmt.Println(s.Speak()) // 输出:Hello, my name is Alice
接口实现多态,解耦代码依赖,提高灵活性。