【Golang】Golang 中如何使用接口与多态实现代码复用?

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语言通过:

  1. 定义接口 – 提供公共方法
  2. 让不同类型实现接口
  3. 接口作为函数参数
  4. 传入不同实现
  5. 达到代码复用

这利用了多态性,一个接口有多个实现。可以很好地提高代码的灵活性和复用性。