当前位置: 代码迷 >> 综合 >> golang-多态的实现
  详细解决方案

golang-多态的实现

热度:97   发布时间:2023-10-13 09:18:20.0
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() 报错,接口没有具体化实例