Sobes.tech
Back to questions
Middle+
4

Как реализовано ООП в Go?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

Основные механизмы:

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

Пример:

package main
import "fmt"

type Animal interface {
    Speak() string
}

type Dog struct {
    Name string
}

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

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

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