Go heeft geen erfenis — in plaats daarvan gebruikt het compositie via struct embedding. Door een struct (of interface) in een ander in te bedden, krijgt het buitenste type de velden en methoden van het binnenste type rechtstreeks. Dit is Go's antwoord op codeherhaling, waarbij "has-a" compositie de voorkeur krijgt boven "is-a" erfenis.
Inbedding van een struct
Animal {
Name
}
Eat() {
a.Name +
}
Dog {
Animal
Breed
}
d := Dog{
Animal: Animal{Name: },
Breed: ,
}
fmt.Println(d.Name)
fmt.Println(d.Eat())
