课程进度 36% · 第9/23章第9/23章 · 标签 1/3
— 1 —
接口基础
Go接口是一组方法签名的集合,用type关键字定义。Go的接口是隐式实现的。
go
1
type Animal interface {
2
Speak() string
3
Move() string
4
}
5
// 隐式实现
6
type Dog struct{}
7
func (d Dog) Speak() string { return "汪汪" }
8
func (d Dog) Move() string { return "跑" }
— 2 —
接口实现与多态
go
1
type Cat struct{}
2
func (c Cat) Speak() string { return "喵喵" }
3
func (c Cat) Move() string { return "走" }
4
5
// 多态
6
func PrintAnimal(a Animal) {
7
fmt.Println(a.Speak(), a.Move())
8
}
9
10
func main() {
11
var a Animal = Dog{}
12
PrintAnimal(a) // 汪汪 跑
13
a = Cat{}
14
PrintAnimal(a) // 喵喵 走
15
}
接口多态隐式实现方法集Animal