В Go интерфейсы определяют набор методов, которые должен реализовать тип, но они не могут содержать свойства или поля. Следовательно, нельзя расширить функциональность класса (типа) добавлением новых свойств через интерфейс. Интерфейсы служат для описания поведения, а не структуры данных.
Можно ли расширить функциональность класса, добавляя интерфейсом новые свойства или поля?
В Go интерфейсы определяют набор методов, которые должен реализовать тип, но они не могут содержать свойства или поля.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Go интерфейсы определяют набор методов, которые должен реализовать тип, но они не могут содержать свойства или поля. Следовательно, нельзя расширить функциональность класса (типа) добавлением новых свойств через интерфейс. Интерфейсы служат для описания поведения, а не структуры данных.
Пример интерфейса в Go:
type Reader interface {
Read(p []byte) (n int, err error)
}
Если нужно добавить новые поля, это делается через структуру, а не интерфейс.