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()
}