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