Go 没有继承 —— 取而代之的是通过结构体嵌入实现的组合。通过将一个结构体(或接口)嵌入到另一个结构体中,外层类型可以直接获得内层类型的字段和方法。这是 Go 对代码复用的解答,它倾向于使用 "has-a"(拥有)的组合,而非 "is-a"(是一个)的继承。
嵌入一个结构体
go
Animal {
Name
}
Eat() {
a.Name +
}
Dog {
Animal
Breed
}
d := Dog{
Animal: Animal{Name: },
Breed: ,
}
fmt.Println(d.Name)
fmt.Println(d.Eat())
