Sobes.tech
Junior — Middle

Koje zajedničke osobine povezuju klase i interfejse u objektno-orijentisanom programiranju?

sobes.tech АИ

Одговор од АИ

Klase i interfejsi u objektno-orijentisanom programiranju dele nekoliko zajedničkih osobina:

  • Apstrakcija: Oba omogućavaju opisivanje apstraktnih tipova podataka, skrivajući detalje implementacije.
  • Definisanje ponašanja: I klase i interfejsi definišu skup metoda koje moraju biti implementirane.
  • Polimorfizam: Kroz klase i interfejse, može se implementirati polimorfno ponašanje, omogućavajući korišćenje objekata različitih tipova na ujednačen način.
  • Tipizacija: Oba služe za definisanje tipova koje je moguće koristiti za deklarisanje promenljivih i parametara funkcija.

U Go, interfejsi definišu skup metoda, a ne postoji klasa kao takva, ali strukture sa metodama obavljaju ulogu klasa. Interfejsi opisuju ponašanje, a strukture sadrže podatke i implementaciju.

Primer u Go:

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

// Struktura sa metodom koja implementira interfejs
 type File struct {}

 func (f File) Read(p []byte) (n int, err error) {
     // implementacija
     return 0, nil
 }

 func main() {
     var r Reader = File{}
     r.Read(nil)
 }