Может ли Interface добавить поля в Class

«Может ли Interface добавить поля в Class» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go нет классов в традиционном ООП-смысле, но есть структуры (struct) и интерфейсы (interface). Интерфейс не может добавлять поля в структуру - он определяет только набор методов, которые тип должен реализовать.

Пример:

type Speaker interface {
    Speak() string
}

type Dog struct {
    Name string
}

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

Здесь Dog реализует интерфейс Speaker, но интерфейс не добавляет полей в Dog. Интерфейсы в Go работают только с поведением (методами), а не с состоянием (полями).