package mainimport "fmt"type fun interface {
//接口process()
}
type A1 struct{
}
type B1 struct{
}func (a *A1)process(){
fmt.Println("a")
}
func (b *B1)process(){
fmt.Println("b")
}func FactoryA() fun {
return &A1{
}
}
func FactoryB() fun {
return &B1{
}
}func main(){
var a1 fun=&A1{
}//初始化接口(方法一)a1.process()b1:=FactoryB()//初始化接口(方法二:是有构造函数)b1.process()}
接口只有被具体化实例才能调用方法,没有具体化实例的接口调用其方法会panic
var i fun
//i.process() 报错,接口没有具体化实例