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