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.