Sobes.tech
Junior — Middle

Jak je v jazyce Go realizován mechanismus dědičnosti a jaká je jeho implementace?

sobes.tech AI

Odpověď od AI

V jazyce Go neexistuje klasické dědičnosti, jako v objektově orientovaných jazycích. Místo toho se používá kompozice a rozhraní.

  • Kompozice: Místo dědění struktur lze jednu strukturu začlenit do jiné. To umožňuje "vkládání" chování a dat.

  • Rozhraní: Go používá rozhraní k popisu chování. Jakákoli struktura, která implementuje metody rozhraní, je považována za jeho implementaci.

Příklad kompozice:

package main

import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "říká")
}

type Dog struct {
    Animal // začlenění struktury Animal
}

func main() {
    d := Dog{Animal{Name: "Bobby"}}
    d.Speak() // zavolá metodu Animal
}

Tímto způsobem Go podporuje používání kompozice a rozhraní namísto klasické dědičnosti.