Sobes.tech
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.