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.