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