Sobes.tech
Back to questions
Junior — Middle
90

Каким образом в языке Go реализована концепция объектно-ориентированного программирования?

Companies where asked
Betera Group
AvitoAvito
КуперКупер
Российский центр оборота прав
BWG
ГазпромбанкГазпромбанк

Answer from AI

sobes.tech AI

В Go нет классической объектно-ориентированной модели с наследованием и классами, но язык поддерживает ООП-концепции через:

  • Структуры (structs) — пользовательские типы данных, которые могут содержать поля.
  • Методы — функции, связанные с типами (в том числе со структурами), что позволяет реализовать поведение объектов.
  • Интерфейсы (interfaces) — описывают набор методов, которые должен реализовать тип, что обеспечивает полиморфизм.

Пример:

package main
import "fmt"

type Animal interface {
    Speak() string
}

type Dog struct {}

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

type Cat struct {}

func (c Cat) Speak() string {
    return "Meow!"
}

func main() {
    animals := []Animal{Dog{}, Cat{}}
    for _, a := range animals {
        fmt.Println(a.Speak())
    }
}

Таким образом, Go реализует ООП через композицию и интерфейсы, а не через наследование.