Goには継承という概念がない。そのため構造体をうまく利用して埋め込み作業をしていく。 Goでは構造体の中に構造体を埋め込むことで再利用性を高めたり、コード量を減らすことが出来る。 person型とcitizen型はどちらも独立しており、親子関係にはならない。(is-a関係) package main import "fmt" type person struct { Name string } type citizen struct { Country string person } func (p person) greet() string { return fmt.Sprintf("Hello, %s", p.Name) } func main() { c := citizen{ Country: "japan", } c.Name = "hoge" // c.person = &p