Middle
Como usar estruturas embutidas para simular herança em Go?
sobes.tech IA
Resposta da IA
No Go não há herança clássica como em linguagens orientadas a objetos, mas é possível usar estruturas embutidas (embedding) para imitar a herança. Isso é feito incluindo uma estrutura dentro de outra sem especificar o nome do campo, o que permite "herdar" os métodos da estrutura embutida.
Exemplo:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "fala")
}
type Dog struct {
Animal // estrutura embutida
Breed string
}
func main() {
d := Dog{
Animal: Animal{Name: "Bobby"},
Breed: "Pastor alemão",
}
d.Speak() // chamada ao método Animal via Dog
}
Dessa forma, Dog "herda" os métodos de Animal e pode usá-los diretamente.