Sobes.tech
Junior — Middle

Comment le mécanisme d'héritage est-il réalisé dans le langage Go et quelle en est la mise en œuvre?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, il n’y a pas d’héritage classique comme dans les langages orientés objet. À la place, on utilise la composition et les interfaces.

  • Composition : Au lieu d’hériter de structures, on peut inclure une structure dans une autre. Cela permet d’"incorporer" comportement et données.

  • Interfaces : Go utilise des interfaces pour décrire le comportement. Toute structure qui implémente les méthodes d’une interface est considérée comme sa réalisation.

Exemple de composition :

package main

import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "parle")
}

type Dog struct {
    Animal // inclusion de la structure Animal
}

func main() {
    d := Dog{Animal{Name: "Bobby"}}
    d.Speak() // appellera la méthode Animal
}

Ainsi, Go encourage l’utilisation de la composition et des interfaces plutôt que l’héritage classique.