Sobes.tech
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.