把全部的具备共性的方法定义在一块儿,任何其余类型只要实现了这些方法就是实现了这个接口函数
接口Phone, 有一个函数call测试
type Phone interface { call() }
定义2个strctspa
type NokiaPhone struct { } type Samsung struct { }
实现接口中的call()函数指针
func (nokiaPhone NokiaPhone) call() { fmt.Println("I'm NokiaPhone, call.....") } func (samsung Samsung) call() { fmt.Println("I'm Sumsung, call........") }
测试code
var phone Phone phone = new(NokiaPhone) fmt.Printf("%p, %T", phone, phone) // %p 输出指针地址,%T 输出类型 phone.call() phone = new(Samsung) phone.call()
输出blog
0x121bf38, *basicTest.NokiaPhone I'm NokiaPhone, call..... I'm Sumsung, call........
注意:new 获得的是个指针接口