1. 程式人生 > >golang接口的使用(練習一)

golang接口的使用(練習一)

調用接口 一個 ima 通過 使用 () 調用 new nim

在go語言中,一個類只要實現了接口要求的所有函數,我們就說這個類實現了這個接口。
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接口的使用(練習一)