Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada irsiyyət mexanizmi və xüsusiyyətlərini izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada (OOP) irsi, mövcud olan bir sinif əsasında yeni sinif yaratmağa və onun xüsusiyyətlərini və metodlarını miras almağa imkan verir. Bu, kodun təkrar istifadəsini və obyektlərin hiyerarşik təşkilatını təşviq edir.

İrsiyyətin xüsusiyyətləri:

  • Siniflərin hiyerarşisi: alt sinif (irəli) super sinifin (valideyn) davranışını genişləndirə və ya yenidən təyin edə bilər.
  • Polimorfizm: alt sinif obyektləri, super sinif obyektinin gözlənildiyi yerlərdə istifadə oluna bilər.
  • İnkapsulasiya: irsi məlumatların gizlənmə prinsipini pozmur, lakin alt sinif super sinifin qorunan və ictimai üzvlərinə giriş əldə edir.

Go-da birbaşa sinif irsi yoxdur, lakin kompozisiya və interfeyslər oxşar nümunələri həyata keçirməyə imkan verir.

Go ilə kompozisiya nümunəsi:

 type Animal struct {
    Name string
}

func (a Animal) Speak() string {
    return "..."
}

// Dog, embedding vasitəsilə Animal-dən "miras" alır
// və Speak metodunu yenidən təyin edə bilər

type Dog struct {
    Animal
}

func (d Dog) Speak() string {
    return "Woof!"
}

func main() {
    dog := Dog{Animal{Name: "Buddy"}}
    fmt.Println(dog.Name)      // Buddy
    fmt.Println(dog.Speak())   // Woof!
}