Sobes.tech
Назад к вопросам
Junior — Middle
86

Каким образом в языке Go осуществляется механизм наследования и какая его реализация?

Компании, где спрашивали
Betera Group
BWG
Кадровое агентство BWG

Ответ от нейросети

sobes.tech AI

В языке Go нет классического наследования, как в объектно-ориентированных языках. Вместо этого используется композиция и интерфейсы.

  • Композиция: Вместо наследования структур можно включать одну структуру в другую. Это позволяет "встраивать" поведение и данные.

  • Интерфейсы: Go использует интерфейсы для описания поведения. Любая структура, реализующая методы интерфейса, считается его реализацией.

Пример композиции:

package main

import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "говорит")
}

type Dog struct {
    Animal // встраивание структуры Animal
}

func main() {
    d := Dog{Animal{Name: "Бобик"}}
    d.Speak() // вызовет метод Animal
}

Таким образом, Go поощряет использование композиции и интерфейсов вместо классического наследования.