把全部的具備共性的方法定義在一塊兒,任何其餘類型只要實現了這些方法就是實現了這個接口函數
接口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 獲得的是個指針接口