Go语言接口

Go语言接口教程

Go 语言 中没有传统面向对象语言中的类的概念,不过提供了接口的支持,在 Golang 中可以使用接口来使用一些面向对象的特性。

Go语言接口特性

在 Golang 中,接口有以下几个特点:

  • 可以包含 0 个或者多个方法的签名。
  • 只定义方法的签名、不包含实现。
  • 实现接口不需要显式的声明、只需实现相应方法即可。

Go语言接口与其他语言接口

Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。

编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。

Go语言接口定义

语法

type InterfaceNamer interface{ func1(param_list1) return_list1 func2(param_list2) return_list2 ... }

说明

这里,我们定义了一个名字为 InterfaceNamer 的接口,接口中有两个方法,一个是 func1 另一个是 func2。

Golang接口总结

Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。

编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。