Sobes.tech
Назад к вопросам
Middle+
3

Понимаешь ли ты, как принципы ООП реализуются в Go?

Компании, где спрашивали
Лига Цифровой ЭкономикиЛига Цифровой Экономики

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

sobes.tech AI

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

Основные принципы ООП в Go:

  • Инкапсуляция достигается с помощью структур (struct) и методов, которые можно объявлять для этих структур. Публичные и приватные поля и методы определяются по регистру первой буквы (заглавная — публичный, строчная — приватный).

  • Наследование отсутствует в классическом виде, но есть композиция: структуры могут включать другие структуры как поля, что позволяет повторно использовать код.

  • Полиморфизм реализуется через интерфейсы. Любая структура, реализующая методы интерфейса, автоматически удовлетворяет этому интерфейсу без явного объявления.

Пример:

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 поддерживает ООП-принципы через структуры, методы и интерфейсы, но без наследования классов, делая акцент на композиции и интерфейсах.