Middle
Ako použiť zabudované štruktúry na simuláciu dedičstva v Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go neexistuje klasické dědičstvo ako v objektově orientovaných jazycích, ale lze použít vestavěné struktury (embedding) k napodobení dědičství. Toho se dosáhne začleněním jedné struktury do druhé bez uvedení jména pole, což umožňuje "dědit" metody vestavěné struktury.
Příklad:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "říká")
}
type Dog struct {
Animal // vestavěná struktura
Breed string
}
func main() {
d := Dog{
Animal: Animal{Name: "Bobby"},
Breed: "Německý ovčák",
}
d.Speak() // volání metody Animal přes Dog
}
Tímto způsobem bude mít Dog "zděděné" metody od Animal a může je přímo používat.