GO语言:接口

137 阅读1分钟
package main

import "fmt"

type boy interface {
	getName()
}

type coolGuy struct {
	name string
}

func (cool coolGuy) getName(){
	fmt.Println("coolGuy:", cool.name)
}

type badGuy struct {
	name string
}

func (bad badGuy) getName(){
	fmt.Println("badGuy:", bad.name)
}

func main(){
	cool := coolGuy{"Tom"}
	bad  := badGuy{"Jack"}

        var a boy
        
	a = new(coolGuy)
	a.getName()

	a = new(badGuy)
	a.getName()

	a = cool
	a.getName()

	a = bad
	a.getName()

}