首先看如果在go中使用interface
1.定义interface
type person interface {
Speak() string
Walk()
sex() string
}
2.interface实现
type male struct {
}
func (p male) Speak() string {
return "man"
}
func (p male) Walk(){
fmt.Println("wolk like a man")
}
func (p male) sex() string {
return "male"
}
如果你之前从事的是java的开发,肯定很纳闷,person 和male看不出来任何的关系呀,怎么成了person的实现了呢。
如果非要用java的思想向里面套的话,那么我们可以这样理解,这个就相当于male是person的实现,是一种隐式的实现,这样是不是就好理解了。其他的其实也是遵循java接口实现原则的,即所有的方法都要实现,可以实现多个接口。