Go 语言 中没有传统面向对象语言中的类的概念,不过提供了接口的支持,在 Golang 中可以使用接口来使用一些面向对象的特性。
在 Golang 中,接口有以下几个特点:
Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。
编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。
type InterfaceNamer interface{
func1(param_list1) return_list1
func2(param_list2) return_list2
...
}
这里,我们定义了一个名字为 InterfaceNamer 的接口,接口中有两个方法,一个是 func1 另一个是 func2。
Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。
编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。