学习笔记,写到哪是哪。
Go语言的接口和Java的接口有点类似,写法上不太一致。我个人感觉更像Java中父类中定义抽象方法类似,凡是集成父类都需要重新实现抽象方法。
样例代码如下
package main import "fmt" type Phone interface { call(param int) string info() } type IPhone struct { name string number string } func (iphone IPhone) call(param int) string { return fmt.Sprintf("%d,%s", param, iphone.name) } func (iphone IPhone) info() { fmt.Printf("我的手机信息为:name=%s,number=%s\n", iphone.name, iphone.number) } func main() { var phone Phone = IPhone{"haha", "1234"} phone.info() phone.call(12311111) }
执行结果
我的手机信息为:name=haha,number=1234
注意
1、接口的实现方式是在func前面括号指定结构体类型参数。
2、上面的样例代码中首先定义了Phone接口有两个方法call、info,IPhone结构体实现两个方法。