golang接口的使用(練習一)
阿新 • • 發佈:2018-10-23
調用接口 一個 ima 通過 使用 () 調用 new nim 在go語言中,一個類只要實現了接口要求的所有函數,我們就說這個類實現了這個接口。
golang接口賦值實現方式一:將對象實例賦值給接口
golang接口賦值實現方式一:將對象實例賦值給接口
package main import "fmt" //定義一個Animal接口,實現飛和跑的功能 type Animal interface { Fly() Run() } //定義一個Bird類 type Bird struct { } //通過類實現接口的函數功能 func (bird Bird) Fly() { fmt.Println("the bird is flying!!!") } func (bird Bird) Run() { fmt.Println("the bird is running!!!") } func main() { // 聲明一個Animal接口類型的變量 var animal Animal //聲明一個Bird類型的變量,並將其置0 //new()函數是一個用來分配內存的內建函數,它不初始化內存,只將其置0。 bird := new(Bird) //把bird對象賦值給animal接口 animal = bird //調用接口中的函數功能 animal.Fly() animal.Run() }
golang接口賦值實現方式二:將接口賦值給接口
package main import "fmt" //定義一個Animal接口,實現飛和跑的功能 type Animal interface { Fly() Run() } type Animal2 interface { Fly() } //定義一個Bird類 type Bird struct { } //通過類實現接口的函數功能 func (bird Bird) Fly() { fmt.Println("the bird is flying!!!") } func (bird Bird) Run() { fmt.Println("the bird is running!!!") } func main() { // 聲明一個Animal接口類型的變量 var animal Animal var animal2 Animal2 //聲明一個Bird類型的變量,並將其置0 //new()函數是一個用來分配內存的內建函數,它不初始化內存,只將其置0。 bird := new(Bird) //把bird對象賦值給animal接口 animal = bird //將animal接口賦值給animal2,註意函數功能包含關系,包含方法多的接口可以賦值給方法少的接口,反之,則不行。 animal2 = animal //調用接口中的函數功能 animal.Fly() animal.Run() animal2.Fly() }
golang接口的使用(練習一)