Sobes.tech
Junior — Middle

Quelle est la différence entre le mécanisme d'inclusion et l'héritage en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

En la programmation orientée objet (et en Go, en particulier), l’héritage et l’intégration sont deux méthodes de réutilisation du code, mais elles diffèrent par leur mécanique et leur sémantique.

  • Héritage est un mécanisme par lequel une classe (ou type) étend une autre, héritant ses propriétés et méthodes, et peut les redéfinir. En Go, il n’y a pas d’héritage classique.

  • Intégration (embedding) en Go est lorsque un type inclut un autre type comme un champ sans nom. Cela permet de « hériter » des méthodes du type intégré, mais sans hiérarchie d’héritage rigide. L’intégration favorise la composition et la délégation plutôt que l’héritage.

Exemple d’intégration en Go:

 type Animal struct {
    Name string
}

func (a Animal) Speak() string {
    return "..."
}

type Dog struct {
    Animal // intégration
}

func (d Dog) Speak() string {
    return "Woof!"
}

Ici, Dog intègre Animal et peut utiliser ses méthodes, mais peut aussi les redéfinir.

Ainsi, l’intégration en Go est une méthode plus flexible et simple de réutilisation du code comparée à l’héritage classique.