Ответ
В Go нет классического ООП с классами и наследованием, но есть альтернативные подходы:
- Структуры (structs) - заменяют классы. Могут иметь методы:
type User struct {
Name string
}
func (u User) Greet() string {
return "Hello, " + u.Name
}
- Интерфейсы - реализуют полиморфизм:
type Greeter interface {
Greet() string
}
- Композиция вместо наследования:
type Admin struct {
User // встраивание
Role string
}
- Методы могут быть привязаны к любым типам (не только структурам).
Go использует минималистичный подход: нет конструкторов, деструкторов, перегрузки методов или операторов. Вместо наследования - композиция, вместо абстрактных классов - интерфейсы.