在Golang中,一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口。

package main

import "fmt"

type Animal interface {
    Fly()
    Run()
}

type Animal2 interface {
    Fly()
}

type Bird struct {
}

func (bird Bird) Fly() {
    fmt.Println("Bird is flying!!!!")
}

func (bird Bird) Run() {
    fmt.Println("Bird is running!!!!")
}

func main() {

    var animal Animal

    bird := new(Bird)
    animal = bird

    animal = bird //把类实例直接赋值给接口

    animal.Fly()
    animal.Run()

}
Bird is flying!!!!
Bird is running!!!!

 空接口可以接收任何类型的值赋值

package main

import "fmt"

func main() {
    var test interface{}
    test = 123

    fmt.Printf("%T,%v\n", test, test)
    test = "abc"

    fmt.Printf("%T,%v\n", test, test)
    test = true

    fmt.Printf("%T,%v\n", test, test)
    test = 312.2

    fmt.Printf("%T,%v\n", test, test)

}
int,123
string,abc
bool,true
float64,312.2

 

相关文章:

  • 2019-11-18
  • 2021-09-10
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2022-02-13
  • 2021-07-25
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2021-09-16
  • 2021-08-07
  • 2022-02-27
  • 2021-12-14
相关资源
相似解决方案