golang 面向接口编程
时间: 2023-11-15 09:06:18 浏览: 143
Golang 是一门支持面向接口编程的语言,这意味着在 Golang 中,我们可以通过定义接口来实现多态性。具体来说,我们可以定义一个接口类型,然后让多个不同的类型实现该接口,从而使它们可以被视为同一类型,从而实现多态性。
在 Golang 中,接口是一组方法的集合,这些方法定义了该接口所代表的对象应该具有的行为。任何类型只要实现了该接口中定义的所有方法,就可以被视为该接口类型的实例。
下面是一个简单的例子,展示了如何定义一个接口和实现该接口:
```go
package main
import "fmt"
// 定义一个接口
type Animal interface {
Speak() string
}
// 定义一个结构体类型
type Dog struct {
Name string
}
// 实现 Animal 接口中的 Speak 方法
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
// 创建一个 Dog 类型的实例
d := Dog{Name: "Fido"}
// 将该实例赋值给 Animal 类型的变量
var a Animal = d
// 调用 Animal 接口中的 Speak 方法
fmt.Println(a.Speak()) // 输出: Woof!
}
```
在上面的例子中,我们定义了一个 Animal 接口,它只有一个方法:Speak。然后我们定义了一个 Dog 结构体类型,并实现了 Animal 接口中的 Speak 方法。最后,我们创建了一个 Dog 类型的实例,并将其赋值给 Animal 类型的变量。由于 Dog 类型实现了 Animal 接口中的所有方法,所以它可以被视为 Animal 类型的实例,从而实现了多态性。
阅读全文