Sobes.tech
Junior — Middle

Kokios bendrosios savybės jungia klases ir sąsajas objektinio programavimo srityje?

sobes.tech AI

Atsakymas iš AI

Objektų orientuoto programavimo klasės ir sąsajos dalijasi keliomis bendromis savybėmis:

  • Abstrakcija: Abi leidžia aprašyti abstrakčius duomenų tipus, paslėpdamos įgyvendinimo detales.
  • Elgesio apibrėžimas: Tiek klasės, tiek sąsajos nustato metodų rinkinį, kurį reikia įgyvendinti.
  • Polimorfizmas: Per klases ir sąsajas galima įgyvendinti polimorfinį elgesį, leidžiantį naudoti skirtingų tipų objektus vienodai.
  • Tipizacija: Abi naudojamos tipų apibrėžimui, kurias galima naudoti kintamųjų ir funkcijų parametrų deklaravimui.

Go kalboje sąsajos apibrėžia metodų rinkinį, ir nėra klasės kaip tokios, tačiau struktūros su metodais atlieka klasių vaidmenį. Sąsajos apibūdina elgesį, o struktūros – duomenis ir įgyvendinimą.

Pavyzdys Go kalboje:

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

// Struktūra su metodu, įgyvendinančiu sąsają
 type File struct {}

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

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