Sobes.tech
Junior — Middle

Czy można rozszerzyć funkcjonalność klasy, dodając nowe właściwości lub pola za pomocą interfejsu?

sobes.tech AI

Odpowiedź od AI

W Go interfejsy definiują zestaw metod, które musi zaimplementować typ, ale nie mogą zawierać właściwości ani pól. W związku z tym nie można rozszerzyć funkcjonalności klasy (typu) dodając nowe właściwości za pomocą interfejsu. Interfejsy służą do opisywania zachowania, a nie struktury danych.

Przykład interfejsu w Go:

type Reader interface {
    Read(p []byte) (n int, err error)
}

Jeśli chcesz dodać nowe pola, robisz to przez strukturę, nie przez interfejs.