Sobes.tech
Junior — Middle

Kādas kopīgas iezīmes apvieno klases un saskarnes objektorientētajā programmēšanā?

sobes.tech AI

Atbilde no AI

Objektorientētās programmēšanas klasēs un saskarnēs ir vairākas kopīgas īpašības:

  • Abstrakcija: Abi ļauj aprakstīt abstraktus datu tipus, slēpjot īstenošanas detaļas.
  • Uzvedības definīcija: Gan klases, gan saskarnes nosaka metožu kopumu, kas jāīsteno.
  • Polimorfisms: Ar klases un saskarnes palīdzību var īstenot polimorfisku uzvedību, ļaujot vienādi izmantot dažādu tipu objektus.
  • Tipizācija: Abi tiek izmantoti tipu definēšanai, kurus var izmantot mainīgo un funkciju parametru deklarācijā.

Go valodā saskarnes definē metožu kopumu, un nav tiešas klases, bet struktūras ar metodēm veic klases lomu. Saskarnes apraksta uzvedību, bet struktūras satur datus un īstenojumu.

Piemērs Go valodā:

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

// Struktūra ar metodi, kas īsteno saskarni
 type File struct {}

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

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