在Go语言里,没有面向对象这个概念,自然就没有继承,但它支持结构体组合;你可以通过在结构体内嵌套结构体实现组合;

package main

type PersionInfo struct{
firstname string
lastname string
age int
}
func (p *PersionInfo)fullname()string{
return p.firstname+" "+p.lastname
}

type Manager struct{
*PersionInfo
Level int
}
func main(){

m := Manager{
PersionInfo:&PersionInfo{"aaa","bbb",666},
Level:9,
}
println(m.PersionInfo.fullname())
println(m.fullname())

}

Manager结构体有一个PersionInfo类型的字段,没有定义字段名;

实际上编译器会赋予它字段名,这里为PersionInfo,你可以通过这个字段进行访问;

println(m.PersionInfo.fullname())
println(m.fullname())