Sobes.tech
Назад к вопросам
Senior
6

Есть ли в Go объектно-ориентированное программирование?

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

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

sobes.tech AI

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

В Go есть структуры (struct), которые могут иметь методы, что позволяет реализовать поведение объектов. Интерфейсы позволяют описывать набор методов, которые должна реализовать структура, что обеспечивает полиморфизм.

Пример:

package main
import "fmt"

type Animal interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "Woof!"
}

func main() {
    var a Animal = Dog{}
    fmt.Println(a.Speak()) // Выведет: Woof!
}

Таким образом, Go поддерживает объектно-ориентированные принципы через композицию и интерфейсы, но без классического наследования.