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.