Как для встроенной структуры вызвать метод родительской

«Как для встроенной структуры вызвать метод родительской» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для вызова метода родительской структуры из встроенной (анонимно встроенной) структуры в Go, нужно явно указать имя родительской структуры при вызове метода. Пример:

type Parent struct{}

func (p Parent) Hello() {
    fmt.Println("Hello from Parent")
}

type Child struct {
    Parent // встраивание
}

func main() {
    c := Child{}
    c.Parent.Hello() // явный вызов метода родителя
    c.Hello()        // неявный вызов (если метод не переопределен)
}

Если метод Hello() не переопределен в Child, можно вызывать его напрямую через c.Hello(). При переопределении метода в дочерней структуре, для вызова родительской версии нужно использовать явное обращение через имя встроенной структуры.