Go语言可以通过接口和多态来实现代码复用。
具体做法为:
一、定义接口
使用interface{}
定义一个接口,包含公共的方法:
type Animal interface {
Speak()
Run()
}
这定义了一个Animal
接口,有Speak()
和Run()
两个方法。
二、实现接口
不同的类型去实现这个接口:
type Dog struct {}
func (d *Dog) Speak() {
fmt.Println("汪汪叫!")
}
func(d *Dog) Run() {
fmt.Println("狗狗在狂奔!")
}
Dog实现了Animal
接口。
三、使用接口
定义一个接受Animal
接口的函数:
func DoSomething(a Animal) {
a.Speak()
a.Run()
}
四、传入不同实例
dog := Dog{}
DoSomething(&dog)
cat := Cat{}
DoSomething(&cat)
五、效果
会输出:
汪汪叫!
狗狗在狂奔!
喵喵叫!
猫咪在跑跳!
总的来说,Go语言通过:
- 定义接口 – 提供公共方法
- 让不同类型实现接口
- 接口作为函数参数
- 传入不同实现
- 达到代码复用
这利用了多态性,一个接口有多个实现。可以很好地提高代码的灵活性和复用性。