Go não possui herança — em vez disso, usa composição via embedding de struct. Ao incorporar uma struct (ou interface) dentro de outra, o tipo externo ganha os campos e métodos do tipo interno diretamente. Esta é a resposta do Go para reutilização de código, favorecendo composição "tem-um" sobre herança "é-um".
Embedding de uma struct
Animal {
Name
}
Eat() {
a.Name +
}
Dog {
Animal
Breed
}
d := Dog{
Animal: Animal{Name: },
Breed: ,
}
fmt.Println(d.Name)
fmt.Println(d.Eat())
