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