Go 接口的使用
在Go语言中,接口就是方法签名的集合;在面向对象领域里,接口定义一个对象的行为,接口只是指定了对象能做什么,至于如何实现这个行为,则由对象本身决定。当一个类型实现接口中的所有方法的时候,就可以称它实现该接口。接口指定了一个类型应该具有的方法,并由该类型决定如何实现这些方法
-
接口的定义
使用Type关键字可以定义接口:
type interfaceName interface { mothod() }
-
接口的实现
创建类型或者结构体,并为其绑定接口定义的方法,接收者为该类型或者结构体,方法名为接口中的方法名,这样子该类型或者结构体实现了该接口
type Study interface { learn() } type Student struct { name string book string } type Worker struct { name string book string by string } func (student Student) learn() { fmt.Printf("%s 在读 %s\n", student.name, student.book) } func (worker *Worker) learn() { fmt.Printf("%s %s %s\n", worker.name, worker.by, worker.book) } func main() { student1 := Student{ name: "小三", book: "如何让富婆爱上你", } student1.learn() fmt.Println("-------------------------") worker := Worker{ name: "往往", book: "百年孤独", by: "通过iPad读", } worker.learn() fmt.Println("-----------接口的使用--------------") var study Study study = student1 study.learn() study = &worker study.learn() }