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