Sobes.tech
Junior — Middle

Cum se realizează mecanismul de moștenire în limbajul Go și care este implementarea sa?

sobes.tech AI

Răspuns de la AI

În limbajul Go nu există moștenire clasică, ca în limbajele orientate pe obiecte. În schimb, se utilizează compoziție și interfețe.

  • Compoziție: În loc să moștenească structuri, se poate include o structură într-alta. Acest lucru permite "incorporarea" comportamentului și datelor.

  • Interfețe: Go folosește interfețe pentru a descrie comportamentul. Orice structură care implementează metodele unei interfețe este considerată ca fiind implementarea acesteia.

Exemplu de compoziție:

package main

import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "vorbește")
}

type Dog struct {
    Animal // includerea structurii Animal
}

func main() {
    d := Dog{Animal{Name: "Bobby"}}
    d.Speak() // va apela metoda Animal
}

Astfel, Go încurajează utilizarea compoziției și interfețelor în locul moștenirii clasice.