[GO]接口的定义和实现
package main import "fmt" type Humaner interface { SayHi() } type Student struct { name string id int } func (tmp *Student) SayHi() { fmt.Printf("Student%s %d sayhi\n", tmp.name, tmp.id) } type Teacher struct { group string addr string } func (tmp *Teacher) SayHi() { fmt.Printf("Teacher%s %s sayhi\n", tmp.group, tmp.addr) } type MyStr string func (tmp *MyStr) SayHi() { fmt.Printf("MyStr %s sayhi", *tmp) } func main() { //定义接口类型的变量 var i Humaner //只是实现了此接口方法的类型,那么这个类型的变量(接收者类型)就可以给i赋值 s := &Student{"mike", 1} i = s i.SayHi() t := &Teacher{"mike", "NJ"} i = t i.SayHi() var str MyStr = "hello mike" i = &str i.SayHi() }
执行结果
Studentmike 1 sayhi Teachermike NJ sayhi MyStr hello mike sayhi
- 上一篇 »Go标准库之html/template
- 下一篇 »深入理解 PHP 的 7 个预定义接口