Sobes.tech
Junior — Middle

Кадом хусусиятҳои умумӣ синфҳо ва интерфейсҳоро дар барномасозии объектӣ-баҳс мекунанд?

sobes.tech AI

Ҷавоб аз AI

Объектга йўналтирилган дастурлашда синфлар ва интерфейслар бир неча умумий хусусиятларни бўлишадир:

  • Абстракция: Иккаласи ҳам абстракт маълумот турларини тасвирлашга имкон беради, амалга ошириш деталларини яширади.
  • Хулқ-атворни аниқлаш: Ҳам синфлар, ҳам интерфейслар бажарилиши керак бўлган методлар тўпламини белгилайди.
  • Кўп шакллик: Синфлар ва интерфейслар орқали кўп шаклли хулқ-атворни амалга ошириш мумкин, бу турли турдаги объектларни бир хил тарзда фойдаланишга имкон беради.
  • Типлаш: Иккаласи ҳам ўзгарувчилар ва функция параметрларини эълон қилиш учун ишлатиладиган турларни аниқлашда хизмат қилади.

Go тилида, интерфейслар методлар тўпламини белгилайди, ва синф деган нарса мавжуд эмас, лекин методлар билан тузилмалар синф ролини бажаради. Интерфейслар хулқ-атворни тасвирлайди, ва тузилмалар маълумотлар ва амалга оширишни ўз ичига олади.

Go мисоли:

// Интерфейс
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Интерфейсни амалга оширадиган методга эга тузилма
 type File struct {}

 func (f File) Read(p []byte) (n int, err error) {
     // амалга ошириш
     return 0, nil
 }

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