其他分享
首页 > 其他分享> > go 接口

go 接口

作者:互联网

golang中的接口,不需要显示的实现,只要一个变量,含有接口类型中的所有方法,那么这个变量就实现了这个接口,因此,golang中没有implemet类似的关键字 如果一个变量含有多个interface类型的方法,那么这个变量就实现了多个接口   package main
import "fmt"
//车接口 type carer interface {   GetName() string     Run()   DiDi() }
//宝马结构体 type BMW struct {   Name string }
//宝马实现的获取名字的方法 func (p *BMW) GetName() string {   return p.Name }
func (p *BMW) Run() {   fmt.Printf("%s is running\n", p.Name) }
func (p *BMW) DiDi() {   fmt.Printf("%s is didi\n", p.Name) }
//奔驰结构体 type BENCHI struct {   Name string }
func (p *BENCHI) GetName() string {   return p.Name }
func (p *BENCHI) Run() {   fmt.Printf("%s is running\n", p.Name) }
func (p *BENCHI) DiDi() {   fmt.Printf("%s is didi\n", p.Name) }
func main() {
  var car carer   fmt.Println(car)
  //BMW结构体赋值给 bmw   var bmw BMW   bmw.Name = "宝马"   car = &bmw
  fmt.Println(car.GetName())   car.Run()   car.DiDi()
  var benchi BENCHI   benchi.Name = "奔驰"   car = &benchi
  fmt.Println(car.GetName())   car.Run()   car.DiDi()
}

标签:Name,car,fmt,接口,BMW,func,go,string
来源: https://www.cnblogs.com/chenweihao/p/16600273.html