Junior — Middle
Come viene realizzato il meccanismo di ereditarietà nel linguaggio Go e qual è la sua implementazione?
sobes.tech AI
Risposta dell'AI
Nel linguaggio Go non esiste l’eredità classica come nei linguaggi orientati agli oggetti. Al suo posto, si utilizzano composizione e interfacce.
-
Composizione: Invece di ereditare strutture, si può includere una struttura in un’altra. Questo permette di "integrare" comportamento e dati.
-
Interfacce: Go utilizza le interfacce per descrivere il comportamento. Qualsiasi struttura che implementa i metodi di un’interfaccia è considerata la sua implementazione.
Esempio di composizione:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "dice")
}
type Dog struct {
Animal // inclusione della struttura Animal
}
func main() {
d := Dog{Animal{Name: "Bobby"}}
d.Speak() // chiamerà il metodo Animal
}
In questo modo, Go incoraggia l’uso di composizione e interfacce invece dell’eredità classica.