Junior — Middle
Hogyan valósul meg a öröklődési mechanizmus a Go nyelvben, és mi a megvalósítása?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nincs klasszikus öröklődés, mint az objektumorientált nyelvekben. Ehelyett kompozíciót és interfészeket használnak.
-
Kompozíció: Ahelyett, hogy struktúrákat öröklünk, egy struktúrát beágyazhatunk egy másikba. Ez lehetővé teszi a viselkedés és adatok "beágyazását".
-
Interfészek: A Go interfészeket használ a viselkedés leírására. Bármely struktúra, amely megvalósítja egy interfész metódusait, annak megvalósításának számít.
Példa kompozícióra:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "beszél")
}
type Dog struct {
Animal // struktúra beágyazása
}
func main() {
d := Dog{Animal{Name: "Bobby"}}
d.Speak() // az Animal metódusát hívja
}
Így a Go támogatja a kompozíció és az interfészek használatát a klasszikus öröklődés helyett.