Junior — Middle
Kaip įgyvendinamas paveldėjimo mechanizmas Go kalboje ir koks yra jo įgyvendinimas?
sobes.tech AI
Atsakymas iš AI
Go kalboje nėra klasikinės paveldėjimo, kaip objektinio programavimo kalbose. Vietoj to, naudojama kompozicija ir sąsajos.
-
Kompozicija: Vietoj struktūrų paveldėjimo, galima įtraukti vieną struktūrą į kitą. Tai leidžia "įdiegti" elgesį ir duomenis.
-
Sąsajos: Go naudoja sąsajas elgsenos apibūdinimui. Bet kuri struktūra, įgyvendinanti sąsajos metodus, laikoma jos įgyvendinimu.
Kompozicijos pavyzdys:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "sako")
}
type Dog struct {
Animal // struktūros įtraukimas
}
func main() {
d := Dog{Animal{Name: "Bobby"}}
d.Speak() // kviečia Animal metodą
}
Taip Go skatina naudoti kompoziciją ir sąsajas vietoj klasikinio paveldėjimo.