课程名称:Go 语言语法进阶指南
课程章节:接口
课程讲师:Gavin
课程内容:
- 概念与实现
- 多态
package interface_demo
import "fmt"
// interface for behavior
type Behavior interface {
Run() string
Eat() string
}
struct_demo 隐式实现,对 interface 的实现
package struct_demo
import "fmt"
// 定义cat结构体
type Cat struct {
Animal
ID int
Name string
Age int
}
package main
import "fmt"
func main() {
// 测试接口定义变量 匿名创建方式
dog := new(struct_demo.Dog)
cat := new(struct_demo.Cat)
action(dog)
action(cat)
}
// 测试接口定义变量
func action(b interface_demo.Behavior) string {
b.Run()
b.Eat()
return ""
}
func (d *Dog) Eat() string {
fmt.Println("hello! hello!")
return "hello! hello!"
}
func (d *Dog) Run() string {
fmt.Println("ID : ", d.ID, "Dog is running")
return "Dog is running"
}
func (d *Cat) Eat() string {
fmt.Println("Cat->hello! hello!")
return "Cat->hello! hello!"
}
func (d *Cat) Run() string {
fmt.Println("ID : ", d.ID, "Cat is running")
return "Cat is running"
}
课程收获:
- 接口:公共方法组合起来以封装特定功能的一个集合(抽象、封装、多态)
- 多态:接口的多种不同实现方式