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)
}