Sobes.tech
Junior — Middle

Care sunt caracteristicile comune care unesc clasele și interfețele în programarea orientată pe obiect?

sobes.tech AI

Răspuns de la AI

Clasele și interfețele în programarea orientată pe obiecte împărtășesc mai multe caracteristici comune:

  • Abstracție: Ambele permit descrierea tipurilor de date abstracte, ascunzând detaliile de implementare.
  • Definirea comportamentului: Atât clasele, cât și interfețele stabilesc un set de metode care trebuie implementate.
  • Polimorfism: Prin clase și interfețe, se poate implementa un comportament polimorfic, permițând utilizarea obiectelor de diferite tipuri în mod uniform.
  • Tipizare: Ambele sunt folosite pentru a defini tipuri care pot fi utilizate pentru declararea variabilelor și parametrilor funcțiilor.

În Go, interfețele definesc un set de metode, iar nu există o clasă propriu-zisă, dar structurile cu metode îndeplinesc rolul de clase. Interfețele descriu comportamentul, iar structurile conțin datele și implementarea.

Exemplu în Go:

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

// Struct cu metodă care implementează interfața
 type File struct {}

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

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