Назад к вопросам
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 поощряет использование композиции и интерфейсов вместо классического наследования.