В Go нет наследования в смысле ООП. Вместо него используется композиция через встраивание (embedding): тип встраивается в структуру без имени поля. Методы встроенного типа "продвигаются" и вызываются напрямую у внешней структуры, но это не наследование: нет подтипизации и полиморфизма через базовый тип в стиле Java/C++.
type Animal struct{ Name string }
func (a Animal) Speak() string { return "?" }
type Dog struct{ Animal }
func (d Dog) Speak() string { return "woof" }
var d Dog
d.Speak() // "woof"
d.Animal.Speak() // "?"