Junior — Middle
Como é que o mecanismo de herança é realizado na linguagem Go e qual é a sua implementação?
sobes.tech IA
Resposta da IA
Na linguagem Go, não existe herança clássica, como em linguagens orientadas a objetos. Em vez disso, usa composição e interfaces.
-
Composição: Em vez de herdar estruturas, pode-se incluir uma estrutura numa outra. Isto permite "incorporar" comportamento e dados.
-
Interfaces: Go usa interfaces para descrever comportamentos. Qualquer estrutura que implemente os métodos de uma interface é considerada sua implementação.
Exemplo de composição:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "fala")
}
type Dog struct {
Animal // inclusão da estrutura Animal
}
func main() {
d := Dog{Animal{Name: "Bobby"}}
d.Speak() // chamará o método Animal
}
Assim, o Go incentiva o uso de composição e interfaces em vez de herança clássica.