Middle
Hogyan lehet beépített struktúrákat használni az öröklődés szimulálására Go-ban?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nincs klasszikus öröklődés, mint az objektumorientált nyelvekben, de beágyazott struktúrák (embedding) használatával utánozható az öröklődés. Ez úgy érhető el, hogy egy struktúrát beágyazunk egy másikba anélkül, hogy megadnánk a mező nevét, így "örökölhetjük" a beágyazott struktúra módszereit.
Példa:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "beszél")
}
type Dog struct {
Animal // beágyazott struktúra
Breed string
}
func main() {
d := Dog{
Animal: Animal{Name: "Bobby"},
Breed: "Pásztorkutya",
}
d.Speak() // Animal metódusának hívása Dog-on keresztül
}
Így a Dog "örökli" az Animal metódusait, és közvetlenül használhatja azokat.