Sobes.tech
Junior — Middle

Selgitage objektorienteeritud programmeerimise pärimise mehhanismi ja omadusi.

sobes.tech AI

Vastus AI-lt

Objektorienteeritud programmeerimises (OOP) võimaldab pärimine luua uue klassi olemasoleva põhjal, pärides selle omadused ja meetodid. See soodustab koodi taaskasutust ja objekti hierarhilist korraldust.

Pärimise omadused:

  • Klasside hierarhia: alamklass (pärija) laiendab või ümbersõnastab superklassi (vanema) käitumist.
  • Polümorfism: alamklassi objektid võivad olla kasutusel seal, kus oodatakse superklassi objekti.
  • Kapseldus: pärimine ei riku andmete varjamise põhimõtet, kuid alamklassil on juurdepääs superklassi kaitstud ja avalikele liikmetele.

Go-s ei ole otsest klassipärimist, kuid on koostamine ja liidesed, mis võimaldavad sarnaseid mustreid rakendada.

Näide Go-s koostamisega:

 type Animal struct {
    Name string
}

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

// Dog "pärib" Animal-ist embeddingi kaudu
// ja võib üle kirjutada Speak meetodi

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